Releases: humanloop/humanloop-python
Releases · humanloop/humanloop-python
0.8.40b6
Release 0.8.40b6: Introduce async decorators (#75) * Introduce async versions of the File decorators * The decorators are compatible with the `eval.run(...)` utility * The new decorators are available on the sync version of the Humanloop client. In the near future, we'll work on providing feature parity between the sync and async client, and move the async decorator versions there.
0.8.40b5
0.8.40b4
0.8.40b3
0.8.40b2
Fix/consistent path normalization (#73) * fix: improve path handling in sync client pull operation * Improve and make path handling more consistent in call and log overloads * refactor(tests): update normalize_path test to cover strip_extension parameter * fix: improve path validation for SDK calls - Enhance safety in path extension handling - Fix path validation tests to work with actual error messages - Prioritize extension validation over other path format issues - Ensure consistent error handling across prompt and agent clients * feat: add path utils for centralized path validation * Further refined path handling and added more tests * refactor: use pytest tmp_path fixture to isolate test file operations This change: - Replaces hardcoded directories with pytest's tmp_path fixture - Eliminates filesystem pollution between tests - Enables safe test parallelization - Improves path validation and error messages - Removes redundant cleanup code - Makes tests follow pytest best practices * test: fix type errors in local file operations test by using proper ChatMessageParams type * docs(cli): clarify SyncClient log level control and OpenTelemetry isolation * refactor: simplified path processing to use pathlib where possible * docs: improve comment clarity * test: improve path normalization tests with parametrize and edge cases * docs: clarify pull_file docstring with failure example * docs: expand normalize_path docstring with usage and examples - Add detailed explanation of function's purpose and usage contexts\n- Document rationale for stripping leading/trailing slashes\n- Add comprehensive examples for different path formats\n- Reference SyncClient.pull usage for context * refactor: SyncClient -> FileSyncer * fix(sync): Convert base_dir to string in FileSyncer fixture * fix(dosc): correct logger namespace reference * docs: Improve error messages and comments in FileSyncer * refactor(test): use pytest.mark.parametrize for path validation tests Consolidate the three similar test loops (extension paths, slash paths, and combined paths) into a single parametrized test. This reduces code duplication while making test cases more maintainable and test output more descriptive. - Replace repetitive test loops with @pytest.mark.parametrize - Use descriptive test IDs for better test output - Group test cases by type with clear comments - Make parameter names more explicit (path_generator, test_case_description) * fix(test): use proper typing.Callable for path generator
0.8.40b1
Fix/consistent path normalization (#73) * fix: improve path handling in sync client pull operation * Improve and make path handling more consistent in call and log overloads * refactor(tests): update normalize_path test to cover strip_extension parameter * fix: improve path validation for SDK calls - Enhance safety in path extension handling - Fix path validation tests to work with actual error messages - Prioritize extension validation over other path format issues - Ensure consistent error handling across prompt and agent clients * feat: add path utils for centralized path validation * Further refined path handling and added more tests * refactor: use pytest tmp_path fixture to isolate test file operations This change: - Replaces hardcoded directories with pytest's tmp_path fixture - Eliminates filesystem pollution between tests - Enables safe test parallelization - Improves path validation and error messages - Removes redundant cleanup code - Makes tests follow pytest best practices * test: fix type errors in local file operations test by using proper ChatMessageParams type * docs(cli): clarify SyncClient log level control and OpenTelemetry isolation * refactor: simplified path processing to use pathlib where possible * docs: improve comment clarity * test: improve path normalization tests with parametrize and edge cases * docs: clarify pull_file docstring with failure example * docs: expand normalize_path docstring with usage and examples - Add detailed explanation of function's purpose and usage contexts\n- Document rationale for stripping leading/trailing slashes\n- Add comprehensive examples for different path formats\n- Reference SyncClient.pull usage for context * refactor: SyncClient -> FileSyncer * fix(sync): Convert base_dir to string in FileSyncer fixture * fix(dosc): correct logger namespace reference * docs: Improve error messages and comments in FileSyncer * refactor(test): use pytest.mark.parametrize for path validation tests Consolidate the three similar test loops (extension paths, slash paths, and combined paths) into a single parametrized test. This reduces code duplication while making test cases more maintainable and test output more descriptive. - Replace repetitive test loops with @pytest.mark.parametrize - Use descriptive test IDs for better test output - Group test cases by type with clear comments - Make parameter names more explicit (path_generator, test_case_description) * fix(test): use proper typing.Callable for path generator
0.8.39
Release 0.8.39: Sync functionality and CLI - Humanloop SDK can now use local .prompt and .agent file definitions. By default, the local worskpace is placed in the `humanloop` directory of your project - You can clone Files from the Humanloop workspace into your local one. After cloning, the local will mirror the directory structure on remote. - To use local files, refer to them by path in `call` and `log` operations - In code, the feature can be toggled via the `use_local_files` flag in the Humanloop client constructor - The feature can also be accessed via CLI: to clone Files, use the `humanloop pull` CLI command
0.8.38
What's Changed
Full Changelog: 0.8.37...0.8.38
0.8.37
What's Changed
Full Changelog: 0.8.36...0.8.37