ostruct-cli 0.2.0__tar.gz → 0.4.0__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 (40) hide show
  1. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/PKG-INFO +9 -6
  2. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/README.md +3 -3
  3. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/pyproject.toml +11 -4
  4. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/__init__.py +2 -2
  5. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/cli.py +466 -604
  6. ostruct_cli-0.4.0/src/ostruct/cli/click_options.py +257 -0
  7. ostruct_cli-0.4.0/src/ostruct/cli/errors.py +380 -0
  8. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/file_info.py +154 -50
  9. ostruct_cli-0.4.0/src/ostruct/cli/file_list.py +332 -0
  10. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/file_utils.py +95 -67
  11. ostruct_cli-0.4.0/src/ostruct/cli/path_utils.py +104 -0
  12. ostruct_cli-0.4.0/src/ostruct/cli/security/__init__.py +32 -0
  13. ostruct_cli-0.4.0/src/ostruct/cli/security/allowed_checker.py +47 -0
  14. ostruct_cli-0.4.0/src/ostruct/cli/security/case_manager.py +75 -0
  15. ostruct_cli-0.4.0/src/ostruct/cli/security/errors.py +184 -0
  16. ostruct_cli-0.4.0/src/ostruct/cli/security/normalization.py +161 -0
  17. ostruct_cli-0.4.0/src/ostruct/cli/security/safe_joiner.py +211 -0
  18. ostruct_cli-0.4.0/src/ostruct/cli/security/security_manager.py +353 -0
  19. ostruct_cli-0.4.0/src/ostruct/cli/security/symlink_resolver.py +483 -0
  20. ostruct_cli-0.4.0/src/ostruct/cli/security/types.py +108 -0
  21. ostruct_cli-0.4.0/src/ostruct/cli/security/windows_paths.py +404 -0
  22. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/template_filters.py +8 -5
  23. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/template_io.py +4 -2
  24. ostruct_cli-0.2.0/src/ostruct/cli/errors.py +0 -329
  25. ostruct_cli-0.2.0/src/ostruct/cli/file_list.py +0 -207
  26. ostruct_cli-0.2.0/src/ostruct/cli/path_utils.py +0 -123
  27. ostruct_cli-0.2.0/src/ostruct/cli/security.py +0 -323
  28. ostruct_cli-0.2.0/src/ostruct/cli/security_types.py +0 -49
  29. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/LICENSE +0 -0
  30. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/__init__.py +0 -0
  31. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/cache_manager.py +0 -0
  32. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/progress.py +0 -0
  33. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/template_env.py +0 -0
  34. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/template_extensions.py +0 -0
  35. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/template_rendering.py +0 -0
  36. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/template_schema.py +0 -0
  37. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/template_utils.py +0 -0
  38. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/template_validation.py +0 -0
  39. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/cli/utils.py +0 -0
  40. {ostruct_cli-0.2.0 → ostruct_cli-0.4.0}/src/ostruct/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ostruct-cli
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: CLI for OpenAI Structured Output
5
5
  Author: Yaniv Golan
6
6
  Author-email: yaniv@golan.name
@@ -13,21 +13,24 @@ Classifier: Programming Language :: Python :: 3.12
13
13
  Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Dist: cachetools (>=5.3.2,<6.0.0)
15
15
  Requires-Dist: chardet (>=5.0.0,<6.0.0)
16
+ Requires-Dist: click (>=8.1.7,<9.0.0)
16
17
  Requires-Dist: ijson (>=3.2.3,<4.0.0)
17
18
  Requires-Dist: jsonschema (>=4.23.0,<5.0.0)
18
- Requires-Dist: openai-structured (>=1.0.0,<2.0.0)
19
+ Requires-Dist: openai (>=1.0.0,<2.0.0)
20
+ Requires-Dist: openai-structured (>=1.3.0,<2.0.0)
19
21
  Requires-Dist: pydantic (>=2.6.3,<3.0.0)
20
22
  Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
21
- Requires-Dist: tiktoken (>=0.6.0,<0.7.0)
23
+ Requires-Dist: tiktoken (>=0.8.0,<0.9.0)
22
24
  Requires-Dist: tomli (>=2.0.1,<3.0.0) ; python_version < "3.11"
23
25
  Requires-Dist: typing-extensions (>=4.9.0,<5.0.0)
26
+ Requires-Dist: werkzeug (>=3.1.3,<4.0.0)
24
27
  Description-Content-Type: text/markdown
25
28
 
26
29
  # ostruct-cli
27
30
 
28
31
  [![PyPI version](https://badge.fury.io/py/ostruct-cli.svg)](https://badge.fury.io/py/ostruct-cli)
29
- [![Python Versions](https://img.shields.io/pypi/pyversions/ostruct-cli.svg)](https://pypi.org/project/ostruct-cli/)
30
- [![Documentation Status](https://readthedocs.org/projects/ostruct-cli/badge/?version=latest)](https://ostruct-cli.readthedocs.io/en/latest/?badge=latest)
32
+ [![Python Versions](https://img.shields.io/pypi/pyversions/ostruct-cli.svg)](https://pypi.org/project/ostruct-cli)
33
+ [![Documentation Status](https://readthedocs.org/projects/ostruct/badge/?version=latest)](https://ostruct.readthedocs.io/en/latest/?badge=latest)
31
34
  [![CI](https://github.com/yaniv-golan/ostruct/actions/workflows/ci.yml/badge.svg)](https://github.com/yaniv-golan/ostruct/actions/workflows/ci.yml)
32
35
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
33
36
 
@@ -124,7 +127,7 @@ All debug and error logs are written to:
124
127
  - `~/.ostruct/logs/ostruct.log`: General application logs
125
128
  - `~/.ostruct/logs/openai_stream.log`: OpenAI streaming operations logs
126
129
 
127
- For more detailed documentation and examples, visit our [documentation](https://ostruct-cli.readthedocs.io/).
130
+ For more detailed documentation and examples, visit our [documentation](https://ostruct.readthedocs.io/).
128
131
 
129
132
  ## Development
130
133
 
@@ -1,8 +1,8 @@
1
1
  # ostruct-cli
2
2
 
3
3
  [![PyPI version](https://badge.fury.io/py/ostruct-cli.svg)](https://badge.fury.io/py/ostruct-cli)
4
- [![Python Versions](https://img.shields.io/pypi/pyversions/ostruct-cli.svg)](https://pypi.org/project/ostruct-cli/)
5
- [![Documentation Status](https://readthedocs.org/projects/ostruct-cli/badge/?version=latest)](https://ostruct-cli.readthedocs.io/en/latest/?badge=latest)
4
+ [![Python Versions](https://img.shields.io/pypi/pyversions/ostruct-cli.svg)](https://pypi.org/project/ostruct-cli)
5
+ [![Documentation Status](https://readthedocs.org/projects/ostruct/badge/?version=latest)](https://ostruct.readthedocs.io/en/latest/?badge=latest)
6
6
  [![CI](https://github.com/yaniv-golan/ostruct/actions/workflows/ci.yml/badge.svg)](https://github.com/yaniv-golan/ostruct/actions/workflows/ci.yml)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
8
 
@@ -99,7 +99,7 @@ All debug and error logs are written to:
99
99
  - `~/.ostruct/logs/ostruct.log`: General application logs
100
100
  - `~/.ostruct/logs/openai_stream.log`: OpenAI streaming operations logs
101
101
 
102
- For more detailed documentation and examples, visit our [documentation](https://ostruct-cli.readthedocs.io/).
102
+ For more detailed documentation and examples, visit our [documentation](https://ostruct.readthedocs.io/).
103
103
 
104
104
  ## Development
105
105
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  [tool.poetry]
6
6
  name = "ostruct-cli"
7
- version = "0.2.0"
7
+ version = "0.4.0"
8
8
  description = "CLI for OpenAI Structured Output"
9
9
  authors = ["Yaniv Golan <yaniv@golan.name>"]
10
10
  readme = "README.md"
@@ -18,10 +18,13 @@
18
18
  cachetools = "^5.3.2"
19
19
  ijson = "^3.2.3"
20
20
  typing-extensions = "^4.9.0"
21
- tiktoken = "^0.6.0"
21
+ tiktoken = "^0.8.0"
22
22
  pyyaml = "^6.0.2"
23
- openai-structured = "^1.0.0"
24
23
  tomli = {version = "^2.0.1", python = "<3.11"}
24
+ click = "^8.1.7"
25
+ werkzeug = "^3.1.3"
26
+ openai = "^1.0.0"
27
+ openai-structured = "^1.3.0"
25
28
 
26
29
  [tool.poetry.scripts]
27
30
  ostruct = "ostruct.cli.cli:main"
@@ -46,6 +49,9 @@
46
49
  types-chardet = "^5.0.4.6"
47
50
  pyfakefs = "^5.7.4"
48
51
  types-cachetools = "^5.5.0.20240820"
52
+ types-click = "^7.1.8"
53
+ types-requests = "^2.32.0.20241016"
54
+ pre-commit = "^4.1.0"
49
55
 
50
56
  [tool.poetry.group.docs]
51
57
  optional = true
@@ -98,6 +104,7 @@
98
104
  markers = [
99
105
  "live: mark test as a live test that should use real API key",
100
106
  "asyncio: mark test as requiring async loop",
107
+ "no_pyfakefs: mark test to disable pyfakefs"
101
108
  ]
102
109
  asyncio_default_fixture_loop_scope = "function"
103
110
 
@@ -109,4 +116,4 @@
109
116
 
110
117
  [tool.poetry.group.examples.dependencies]
111
118
  tenacity = "^8.2.3"
112
- asyncio-throttle = "^1.0.2"
119
+ asyncio-throttle = "^1.0.2"
@@ -2,7 +2,7 @@
2
2
 
3
3
  from .cli import (
4
4
  ExitCode,
5
- _main,
5
+ main,
6
6
  validate_schema_file,
7
7
  validate_task_template,
8
8
  validate_variable_mapping,
@@ -11,7 +11,7 @@ from .path_utils import validate_path_mapping
11
11
 
12
12
  __all__ = [
13
13
  "ExitCode",
14
- "_main",
14
+ "main",
15
15
  "validate_path_mapping",
16
16
  "validate_schema_file",
17
17
  "validate_task_template",