fundamental-client 0.2.3__tar.gz → 0.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. fundamental_client-0.2.4/.release-please-manifest.json +3 -0
  2. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/CHANGELOG.md +8 -0
  3. fundamental_client-0.2.4/CONTRIBUTING.md +153 -0
  4. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/PKG-INFO +2 -2
  5. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/README.md +2 -121
  6. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/pyproject.toml +2 -2
  7. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/uv.lock +1 -1
  8. fundamental_client-0.2.3/.release-please-manifest.json +0 -3
  9. fundamental_client-0.2.3/CONTRIBUTING.md +0 -74
  10. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  11. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  12. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  13. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/dependabot.yml +0 -0
  14. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/labeler.yml +0 -0
  15. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/settings.yml +0 -0
  16. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/workflows/ci.yml +0 -0
  17. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/workflows/e2e-pr-comment.yml +0 -0
  18. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/workflows/integration-tests.yml +0 -0
  19. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/workflows/labeler.yml +0 -0
  20. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/workflows/pr-name-validation.yml +0 -0
  21. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/workflows/publish-codeartifact-dev.yml +0 -0
  22. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/workflows/publish-codeartifact.yml +0 -0
  23. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/workflows/publish-pypi.yml +0 -0
  24. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/workflows/publish-testpypi.yml +0 -0
  25. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.github/workflows/release-please.yml +0 -0
  26. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.gitignore +0 -0
  27. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.pre-commit-config.yaml +0 -0
  28. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/.yamllint +0 -0
  29. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/CODEOWNERS +0 -0
  30. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/LICENSE +0 -0
  31. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/noxfile.py +0 -0
  32. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/release-please-config.json +0 -0
  33. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/scripts/bootstrap +0 -0
  34. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/scripts/format +0 -0
  35. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/scripts/generate-models +0 -0
  36. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/scripts/integration-tests +0 -0
  37. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/scripts/lint +0 -0
  38. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/scripts/test +0 -0
  39. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/scripts/unit-tests +0 -0
  40. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/__init__.py +0 -0
  41. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/clients/__init__.py +0 -0
  42. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/clients/base.py +0 -0
  43. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/clients/ec2.py +0 -0
  44. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/clients/fundamental.py +0 -0
  45. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/config.py +0 -0
  46. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/constants.py +0 -0
  47. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/deprecated.py +0 -0
  48. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/estimator/__init__.py +0 -0
  49. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/estimator/base.py +0 -0
  50. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/estimator/classification.py +0 -0
  51. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/estimator/nexus_estimator.py +0 -0
  52. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/estimator/regression.py +0 -0
  53. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/exceptions.py +0 -0
  54. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/models/__init__.py +0 -0
  55. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/models/generated.py +0 -0
  56. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/services/__init__.py +0 -0
  57. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/services/feature_importance.py +0 -0
  58. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/services/inference.py +0 -0
  59. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/services/models.py +0 -0
  60. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/utils/__init__.py +0 -0
  61. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/utils/data.py +0 -0
  62. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/utils/http.py +0 -0
  63. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/utils/polling.py +0 -0
  64. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/src/fundamental/utils/safetensors_deserialize.py +0 -0
  65. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/conftest.py +0 -0
  66. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/integration/__init__.py +0 -0
  67. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/integration/test_classification.py +0 -0
  68. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/integration/test_regression.py +0 -0
  69. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/unit/__init__.py +0 -0
  70. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/unit/conftest.py +0 -0
  71. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/unit/test_backward_compatibility.py +0 -0
  72. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/unit/test_config.py +0 -0
  73. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/unit/test_data_utils.py +0 -0
  74. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/unit/test_estimators.py +0 -0
  75. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/unit/test_safetensors_deserialize.py +0 -0
  76. {fundamental_client-0.2.3 → fundamental_client-0.2.4}/tests/unit/test_sklearn_compliance.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.2.4"
3
+ }
@@ -2,6 +2,14 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## [0.2.4](https://github.com/Fundamental-Technologies/fundamental-client/compare/0.2.3...0.2.4) (2026-02-04)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * eng-575-user-facing-readme ([#64](https://github.com/Fundamental-Technologies/fundamental-client/issues/64)) ([591bcce](https://github.com/Fundamental-Technologies/fundamental-client/commit/591bccefed4abeaeddca9b8a03d81044d2d4bb25))
11
+ * update documentation URL in pyproject.toml ([#66](https://github.com/Fundamental-Technologies/fundamental-client/issues/66)) ([1d21409](https://github.com/Fundamental-Technologies/fundamental-client/commit/1d214095abdb61a47abaecde66e5cee9a69a7ba3))
12
+
5
13
  ## [0.2.3](https://github.com/Fundamental-Technologies/fundamental-client/compare/0.2.2...0.2.3) (2026-02-03)
6
14
 
7
15
 
@@ -0,0 +1,153 @@
1
+ # Contributing to Fundamental Python SDK
2
+
3
+ We welcome contributions to the Fundamental Python SDK! Whether it's a bug fix, documentation improvement, or additional tests, your help is appreciated.
4
+
5
+ ## Reporting Issues
6
+
7
+ Go to this repository's [issues page](https://github.com/fundamental/fundamental-python/issues) and click "New Issue". Please check if the issue has already been reported before creating a new one.
8
+
9
+ Include the following information:
10
+
11
+ - Describe what you expected to happen
12
+ - If possible, include a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example)
13
+ - Describe what actually happened, including the full traceback if there was an exception
14
+ - List your Python version and SDK version
15
+
16
+ ## Development Setup
17
+
18
+ Fork the repository and clone it locally:
19
+
20
+ ```bash
21
+ git clone https://github.com/YOUR-USERNAME/fundamental-python
22
+ cd fundamental-python
23
+ git checkout -b my-feature-branch main
24
+ ```
25
+
26
+ ### Quick Setup
27
+
28
+ We recommend using our bootstrap script for easy setup:
29
+
30
+ ```bash
31
+ ./scripts/bootstrap
32
+ ```
33
+
34
+ ### Manual Installation
35
+
36
+ ```bash
37
+ # Install with development dependencies using UV
38
+ uv sync --group dev
39
+
40
+ # Or with pip
41
+ pip install -e ".[dev]"
42
+ ```
43
+
44
+ ## Making Changes
45
+
46
+ 1. Make your changes
47
+ 2. Format code: `./scripts/format`
48
+ 3. Check linting: `./scripts/lint`
49
+ 4. Run tests: `./scripts/test`
50
+
51
+ ## Testing
52
+
53
+ We use [pytest](https://docs.pytest.org/) for testing. To run tests:
54
+
55
+ ```bash
56
+ # Run all tests using the test script
57
+ ./scripts/test
58
+
59
+ # Or run directly with nox for all Python versions
60
+ uv run nox -s tests
61
+
62
+ # Run tests for specific Python version
63
+ uv run nox -s tests-3.10
64
+
65
+ # Run tests with minimum dependencies
66
+ uv run nox -s tests-3.10 -- minimum
67
+
68
+ # Run specific test file directly
69
+ uv run pytest tests/unit/test_estimators.py -v
70
+ ```
71
+
72
+ When adding new tests, place them in the `tests/` directory following the same structure as the source code.
73
+
74
+ ## Code Quality
75
+
76
+ ```bash
77
+ # Format code using the format script
78
+ ./scripts/format
79
+
80
+ # Run all linting checks using the lint script
81
+ ./scripts/lint
82
+
83
+ # Or run individual checks:
84
+ # Ruff check
85
+ uv run ruff check .
86
+
87
+ # Type checking with pyright
88
+ uv run pyright
89
+
90
+ # Type checking with mypy
91
+ uv run mypy .
92
+
93
+ # Run all pre-commit hooks
94
+ uv run pre-commit run --all-files
95
+ ```
96
+
97
+ ## Generating API Models
98
+
99
+ The SDK uses auto-generated Pydantic models from the Fundamental API's OpenAPI specification. This ensures type safety and keeps the client in sync with the API.
100
+
101
+ ```bash
102
+ # Regenerate models from the OpenAPI spec
103
+ ./scripts/generate-models
104
+
105
+ # Use a different OpenAPI URL (e.g., production)
106
+ OPENAPI_URL=https://api.fundamental-dev.tech/openapi.json ./scripts/generate-models
107
+ ```
108
+
109
+ Generated models are placed in `src/fundamental/models/generated.py` and can be imported from `fundamental.models`:
110
+
111
+ ```python
112
+ from fundamental.models import (
113
+ FitRequest,
114
+ FitResponse,
115
+ TaskStatus,
116
+ TaskStatusResponse,
117
+ )
118
+ ```
119
+
120
+ When the API changes, simply re-run the generation script to update the models.
121
+
122
+ ## Versioning and Release Flow
123
+
124
+ This package follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions. We use [Release Please](https://github.com/googleapis/release-please) for automated versioning and changelog generation.
125
+
126
+ **Main Branch (Stable Releases):**
127
+ 1. Push to `main` triggers Release Please to create/update a Release PR
128
+ 2. Merging the Release PR creates a GitHub Release
129
+ 3. The GitHub Release triggers publishing to CodeArtifact and TestPyPI
130
+
131
+ **Feature Branches (Dev Releases):**
132
+ 1. Push to any non-main branch publishes a dev version to CodeArtifact
133
+ 2. Dev version format: `X.Y.Z.dev0+<commit-hash>`
134
+
135
+ > **Note:** CodeArtifact may show dev versions as "Latest", but `pip install fundamental-client` will install the stable version. Use `--pre` to install dev versions.
136
+
137
+ ## Opening a Pull Request
138
+
139
+ Push your branch and open a pull request against the `main` branch. Include:
140
+
141
+ - Clear title following Conventional Commits format
142
+ - Description of what you changed and why
143
+ - Reference any related issues
144
+
145
+ Make sure all CI checks pass before requesting review.
146
+
147
+ ## Getting Help
148
+
149
+ - **Issues**: [GitHub Issues](https://github.com/fundamental/fundamental-python/issues) for bugs and feature requests
150
+ - **Email**: support@fundamental.tech for questions
151
+ - **Documentation**: See README.md for usage examples
152
+
153
+ We appreciate all contributions and will provide constructive feedback on pull requests. Thank you for helping improve the Fundamental Python SDK!
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fundamental-client
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: Scikit-learn–compatible client SDK for NEXUS, Fundamental's large model for tabular data
5
- Project-URL: documentation, https://fundamental.tech/docs
5
+ Project-URL: documentation, https://launch.fundamental.tech/docs/guides/sdk/user-guide
6
6
  Author-email: Fundamental Tech <support@fundamental.tech>
7
7
  License: Apache License
8
8
  Version 2.0, January 2004
@@ -27,19 +27,10 @@ A scikit-learn compatible Python SDK for NEXUS, Fundamental's large model for ta
27
27
  - [Handling Errors](#handling-errors)
28
28
  - [Diagnostics and Support Information](#diagnostics-and-support-information)
29
29
  - [Exception Types](#exception-types)
30
- - [Development](#development)
31
- - [Installation](#installation-1)
32
- - [Running Tests](#running-tests)
33
- - [Code Quality](#code-quality)
34
- - [Generating API Models](#generating-api-models)
35
30
  - [Versioning](#versioning)
36
- - [Release Flow](#release-flow)
37
- - [Determining the Installed Version](#determining-the-installed-version)
38
31
  - [Requirements](#requirements)
39
- - [Contributing](#contributing)
40
32
  - [License](#license)
41
33
  - [Support](#support)
42
- - [Acknowledgments](#acknowledgments)
43
34
 
44
35
  ## Installation
45
36
 
@@ -374,107 +365,11 @@ except ServerError as e:
374
365
  | `RequestTimeoutError` | Request timed out | 504 |
375
366
 
376
367
 
377
- ## Development
378
-
379
- ### Installation
380
-
381
- ```bash
382
- # Clone the repository
383
- git clone https://github.com/fundamental/fundamental-python.git
384
- cd fundamental-python
385
-
386
- # Install with development dependencies using UV
387
- uv sync --group dev
388
-
389
- # Or with pip
390
- pip install -e ".[dev]"
391
- ```
392
-
393
- ### Running Tests
394
-
395
- ```bash
396
- # Run all tests using the test script
397
- ./scripts/test
398
-
399
- # Or run directly with nox for all Python versions
400
- uv run nox -s tests
401
-
402
- # Run tests for specific Python version
403
- uv run nox -s tests-3.10
404
-
405
- # Run tests with minimum dependencies
406
- uv run nox -s tests-3.10 -- minimum
407
-
408
- # Run specific test file directly
409
- uv run pytest tests/unit/test_estimators.py
410
- ```
411
-
412
- ### Code Quality
413
-
414
- ```bash
415
- # Format code using the format script
416
- ./scripts/format
417
-
418
- # Run all linting checks using the lint script
419
- ./scripts/lint
420
-
421
- # Or run individual checks:
422
- # Ruff check
423
- uv run ruff check .
424
-
425
- # Type checking with pyright
426
- uv run pyright
427
-
428
- # Type checking with mypy
429
- uv run mypy .
430
-
431
- # Run all pre-commit hooks
432
- uv run pre-commit run --all-files
433
- ```
434
-
435
- ### Generating API Models
436
-
437
- The SDK uses auto-generated Pydantic models from the Fundamental API's OpenAPI specification. This ensures type safety and keeps the client in sync with the API.
438
-
439
- ```bash
440
- # Regenerate models from the OpenAPI spec
441
- ./scripts/generate-models
442
-
443
- # Use a different OpenAPI URL (e.g., production)
444
- OPENAPI_URL=https://api.fundamental-dev.tech/openapi.json ./scripts/generate-models
445
- ```
446
-
447
- Generated models are placed in `src/fundamental/models/generated.py` and can be imported from `fundamental.models`:
448
-
449
- ```python
450
- from fundamental.models import (
451
- FitRequest,
452
- FitResponse,
453
- TaskStatus,
454
- TaskStatusResponse,
455
- )
456
- ```
457
-
458
- When the API changes, simply re-run the generation script to update the models.
459
-
460
368
  ## Versioning
461
369
 
462
- This package follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions. We use [Release Please](https://github.com/googleapis/release-please) for automated versioning and changelog generation.
370
+ This package follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions.
463
371
 
464
- ### Release Flow
465
-
466
- **Main Branch (Stable Releases):**
467
- 1. Push to `main` triggers Release Please to create/update a Release PR
468
- 2. Merging the Release PR creates a GitHub Release
469
- 3. The GitHub Release triggers publishing to CodeArtifact and TestPyPI
470
-
471
- **Feature Branches (Dev Releases):**
472
- 1. Push to any non-main branch publishes a dev version to CodeArtifact
473
- 2. Dev version format: `X.Y.Z.dev0+<commit-hash>`
474
-
475
- > **Note:** CodeArtifact may show dev versions as "Latest", but `pip install fundamental-client` will install the stable version. Use `--pre` to install dev versions.
476
-
477
- ### Determining the Installed Version
372
+ To check the installed version:
478
373
 
479
374
  ```python
480
375
  import fundamental
@@ -486,15 +381,6 @@ print(fundamental.__version__)
486
381
  - Python 3.10 or higher
487
382
  - See [pyproject.toml](pyproject.toml) for full dependency list
488
383
 
489
- ## Contributing
490
-
491
- We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details on how to get started.
492
-
493
- For quick setup, run:
494
- ```bash
495
- ./scripts/bootstrap
496
- ```
497
-
498
384
  ## License
499
385
 
500
386
  This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
@@ -502,9 +388,4 @@ This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENS
502
388
  ## Support
503
389
 
504
390
  - **Documentation**: [fundamental.tech/docs](https://fundamental.tech/docs)
505
- - **Issues**: [GitHub Issues](https://github.com/fundamental/fundamental-python/issues)
506
391
  - **Email**: [support@fundamental.tech](mailto:support@fundamental.tech)
507
-
508
- ## Acknowledgments
509
-
510
- Built with ❤️ by Fundamental Tech
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "fundamental-client"
7
- version = "0.2.3"
7
+ version = "0.2.4"
8
8
  description = "Scikit-learn–compatible client SDK for NEXUS, Fundamental's large model for tabular data"
9
9
  authors = [{name = "Fundamental Tech", email = "support@fundamental.tech"}]
10
10
  license = {file = "LICENSE"}
@@ -51,7 +51,7 @@ dev = [
51
51
  ]
52
52
 
53
53
  [project.urls]
54
- documentation = "https://fundamental.tech/docs"
54
+ documentation = "https://launch.fundamental.tech/docs/guides/sdk/user-guide"
55
55
 
56
56
  [tool.hatch.build.targets.wheel]
57
57
  packages = ["src/fundamental"]
@@ -398,7 +398,7 @@ wheels = [
398
398
 
399
399
  [[package]]
400
400
  name = "fundamental-client"
401
- version = "0.2.2"
401
+ version = "0.2.3"
402
402
  source = { editable = "." }
403
403
  dependencies = [
404
404
  { name = "httpx" },
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.2.3"
3
- }
@@ -1,74 +0,0 @@
1
- # Contributing to Fundamental Python SDK
2
-
3
- We welcome contributions to the Fundamental Python SDK! Whether it's a bug fix, documentation improvement, or additional tests, your help is appreciated.
4
-
5
- ## Reporting Issues
6
-
7
- Go to this repository's [issues page](https://github.com/fundamental/fundamental-python/issues) and click "New Issue". Please check if the issue has already been reported before creating a new one.
8
-
9
- Include the following information:
10
-
11
- - Describe what you expected to happen
12
- - If possible, include a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example)
13
- - Describe what actually happened, including the full traceback if there was an exception
14
- - List your Python version and SDK version
15
-
16
- ## Development Setup
17
-
18
- Fork the repository and clone it locally:
19
-
20
- ```bash
21
- git clone https://github.com/YOUR-USERNAME/fundamental-python
22
- cd fundamental-python
23
- git checkout -b my-feature-branch main
24
- ```
25
-
26
- ### Quick Setup
27
-
28
- We recommend using our bootstrap script for easy setup:
29
-
30
- ```bash
31
- ./scripts/bootstrap
32
- ```
33
-
34
- ## Making Changes
35
-
36
- 1. Make your changes
37
- 2. Format code: `./scripts/format`
38
- 3. Check linting: `./scripts/lint`
39
- 4. Run tests: `./scripts/test`
40
-
41
- ## Testing
42
-
43
- We use [pytest](https://docs.pytest.org/) for testing. To run tests:
44
-
45
- ```bash
46
- # Run all tests
47
- uv run nox
48
-
49
- # Run specific test file
50
- uv run pytest tests/unit/test_estimators.py -v
51
-
52
- # Run tests for specific Python version
53
- uv run nox -s tests-3.10
54
- ```
55
-
56
- When adding new tests, place them in the `tests/` directory following the same structure as the source code.
57
-
58
- ## Opening a Pull Request
59
-
60
- Push your branch and open a pull request against the `main` branch. Include:
61
-
62
- - Clear title following Conventional Commits format
63
- - Description of what you changed and why
64
- - Reference any related issues
65
-
66
- Make sure all CI checks pass before requesting review.
67
-
68
- ## Getting Help
69
-
70
- - **Issues**: For bugs and feature requests
71
- - **Email**: support@fundamental.tech for questions
72
- - **Documentation**: See README.md for usage examples
73
-
74
- We appreciate all contributions and will provide constructive feedback on pull requests. Thank you for helping improve the Fundamental Python SDK!