Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dotenv
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# All changes require review from prefabdevs team
* @prefab-cloud/prefabdevs
* @prefab-cloud/prefabdevs
7 changes: 5 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ jobs:
poetry install --no-interaction

- name: Run tests
run: poetry run pytest -k 'not integration'
run: poetry run pytest
env:
PREFAB_INTEGRATION_TEST_API_KEY: ${{ secrets.PREFAB_INTEGRATION_TEST_API_KEY }}
REFORGE_INTEGRATION_TEST_SDK_KEY: ${{ secrets.REFORGE_INTEGRATION_TEST_SDK_KEY }}
REFORGE_INTEGRATION_TEST_ENCRYPTION_KEY: "c87ba22d8662282abe8a0e4651327b579cb64a454ab0f4c170b45b15f049a221"
NOT_A_NUMBER: "not a number"
IS_A_NUMBER: 1234
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -157,4 +157,5 @@ cython_debug/
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
.idea/
.claude/
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "tests/prefab-cloud-integration-test-data"]
path = tests/prefab-cloud-integration-test-data
url = [email protected]:prefab-cloud/prefab-cloud-integration-test-data
[submodule "tests/shared-integration-test-data"]
path = tests/shared-integration-test-data
url = [email protected]:ReforgeHQ/integration-test-data.git
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
exclude: >
(?x)^(
prefab_pb2.*\.py
prefab_pb2\.py
)$

repos:
Expand All @@ -24,14 +24,14 @@ repos:
rev: 23.1.0
hooks:
- id: black
exclude: ^prefab_pb2.*$
exclude: ^prefab_pb2\.py$

- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: "v0.0.259"
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
exclude: ^prefab_pb2.*\.pyi?$
exclude: ^prefab_pb2\.pyi?$

- repo: https://github.com/pre-commit/mirrors-prettier
rev: v2.7.1
Expand Down
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# prefab-cloud-python
# reforge-python

Python client for prefab.cloud, providing Config, FeatureFlags as a Service
Python client for reforge.com, providing Config, FeatureFlags as a Service

**Note: This library is under active development**

Expand All @@ -9,11 +9,11 @@ Python client for prefab.cloud, providing Config, FeatureFlags as a Service
## Example usage

```python
from prefab_cloud_python import Client, Options
import prefab_cloud_python
from sdk_reforge import ReforgeSDK, Options
import sdk_reforge

options = Options(
prefab_api_key="your-prefab-api-key"
sdk_key="your-reforge-api-key"
)

context = {
Expand All @@ -26,9 +26,9 @@ context = {
}


prefab_cloud_python.set_options(options)
sdk_reforge.set_options(options)

result = prefab_cloud_python.get_client().enabled("my-first-feature-flag", context=context)
result = sdk_reforge.get_sdk().enabled("my-first-feature-flag", context=context)

print("my-first-feature-flag is:", result)
```
Expand All @@ -38,7 +38,7 @@ print("my-first-feature-flag is:", result)
If you need to work with the underlying Protocol Buffer types, the following are re-exported for convenience:

```python
from prefab_cloud_python import ConfigValue, StringList, ProtoContext, ContextSet, ContextShape, LogLevel, Json, Schema
from sdk_reforge import ConfigValue, StringList, ProtoContext, ContextSet, ContextShape, LogLevel, Json, Schema

# Create a config value
config_value = ConfigValue(string="example value")
Expand All @@ -50,7 +50,7 @@ json_value = ConfigValue(json=Json(json='{"key": "value"}'))
schema_value = Schema(definition='{"type": "object", "properties": {"name": {"type": "string"}}}')
```

See full documentation https://docs.prefab.cloud/docs/sdks/python
See full documentation https://docs.reforge.com/docs/sdks/python

## Development

Expand Down
13 changes: 0 additions & 13 deletions examples/standard-logging/README.md

This file was deleted.

19 changes: 0 additions & 19 deletions examples/standard-logging/pyproject.toml

This file was deleted.

43 changes: 0 additions & 43 deletions examples/standard-logging/standard-logger-example.py

This file was deleted.

13 changes: 0 additions & 13 deletions examples/structlogger/README.md

This file was deleted.

20 changes: 0 additions & 20 deletions examples/structlogger/pyproject.toml

This file was deleted.

53 changes: 0 additions & 53 deletions examples/structlogger/structlogger-example.py

This file was deleted.

56 changes: 26 additions & 30 deletions mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,31 @@ follow_imports = skip

# TODO: remove file(s) from exclude line(s) as they get typed
exclude = (?x)(
^prefab_cloud_python/config_loader\.py$
| ^prefab_cloud_python/config_parser\.py$
| ^prefab_cloud_python/logger_client\.py$
| ^prefab_cloud_python/logger_filter\.py$
| ^prefab_cloud_python/client\.py$
| ^prefab_cloud_python/weighted_value_resolver\.py$
| ^prefab_cloud_python/context_shape_aggregator\.py$
| ^prefab_cloud_python/__init__\.py$
| ^prefab_cloud_python/criteria_evaluator\.py$
| ^prefab_cloud_python/context_shape\.py$
| ^prefab_cloud_python/log_path_aggregator\.py$
| ^prefab_cloud_python/config_value_unwrapper\.py$
| ^prefab_cloud_python/config_value_wrapper\.py$
| ^prefab_cloud_python/context\.py$
| ^prefab_cloud_python/feature_flag_client\.py$
| ^prefab_cloud_python/config_resolver\.py$
| ^prefab_cloud_python/_structlog_processors\.py$
| ^prefab_cloud_python/read_write_lock\.py$
| ^prefab_cloud_python/yaml_parser\.py$
| ^prefab_cloud_python/config_client\.py$
| ^prefab_cloud_python/encryption\.py$
| ^prefab_cloud_python/_telemetry\.py$
| ^prefab_cloud_python/_requests\.py$
| ^prefab_cloud_python/_internal_logging\.py$
^sdk_reforge/config_loader\.py$
| ^sdk_reforge/config_parser\.py$
| ^sdk_reforge/sdk\.py$
| ^sdk_reforge/weighted_value_resolver\.py$
| ^sdk_reforge/context_shape_aggregator\.py$
| ^sdk_reforge/__init__\.py$
| ^sdk_reforge/criteria_evaluator\.py$
| ^sdk_reforge/context_shape\.py$
| ^sdk_reforge/config_value_unwrapper\.py$
| ^sdk_reforge/config_value_wrapper\.py$
| ^sdk_reforge/context\.py$
| ^sdk_reforge/feature_flag_sdk\.py$
| ^sdk_reforge/config_resolver\.py$
| ^sdk_reforge/_structlog_processors\.py$
| ^sdk_reforge/read_write_lock\.py$
| ^sdk_reforge/yaml_parser\.py$
| ^sdk_reforge/config_sdk\.py$
| ^sdk_reforge/encryption\.py$
| ^sdk_reforge/_telemetry\.py$
| ^sdk_reforge/_requests\.py$
| ^sdk_reforge/_internal_logging\.py$
| ^tests/helpers\.py$
| ^tests/test_logging\.py$
| ^prefab_cloud_python/structlog_multi_processor\.py$
| ^sdk_reforge/structlog_multi_processor\.py$
| ^tests/test_config_parser\.py$
| ^tests/test_weighted_value_resolver\.py$
| ^tests/test_log_path_aggregator\.py$
| ^tests/test_config_loader\.py$
| ^tests/test_options\.py$
| ^tests/test_config_value_unwrapper\.py$
Expand All @@ -48,9 +43,9 @@ exclude = (?x)(
| ^tests/test_criteria_evaluator\.py$
| ^tests/test_context\.py$
| ^tests/test_integration\.py$
| ^tests/test_feature_flag_client\.py$
| ^tests/test_client\.py$
| ^tests/test_config_client\.py$
| ^tests/test_feature_flag_sdk\.py$
| ^tests/test_sdk\.py$
| ^tests/test_config_sdk\.py$
| ^tests/test_encryption\.py$
| ^tests/test_telemetry_context_accumulator\.py$
| ^tests/test_telemetry_evaluation_rollup\.py$
Expand All @@ -60,6 +55,7 @@ exclude = (?x)(
| ^prefab_pb2.*\.pyi?$
| ^examples/
| ^tests/test_api_client\.py$
| ^update_version\.py$
)

# Strict typing options
Expand Down
19 changes: 17 additions & 2 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading