Simyan 2.0.0__tar.gz → 3.0.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 (80) hide show
  1. {simyan-2.0.0 → simyan-3.0.0}/.gitignore +1 -0
  2. {simyan-2.0.0 → simyan-3.0.0}/PKG-INFO +21 -10
  3. {simyan-2.0.0 → simyan-3.0.0}/README.md +14 -4
  4. {simyan-2.0.0 → simyan-3.0.0}/docs/index.md +14 -9
  5. simyan-3.0.0/prek.toml +53 -0
  6. simyan-3.0.0/pylock.toml +1474 -0
  7. {simyan-2.0.0 → simyan-3.0.0}/pyproject.toml +24 -25
  8. {simyan-2.0.0 → simyan-3.0.0}/simyan/__init__.py +1 -1
  9. {simyan-2.0.0 → simyan-3.0.0}/simyan/comicvine.py +90 -101
  10. simyan-3.0.0/tests/cache.sqlite +0 -0
  11. simyan-3.0.0/tests/comicvine_test.py +28 -0
  12. simyan-3.0.0/tests/conftest.py +44 -0
  13. simyan-3.0.0/tests/errors_test.py +67 -0
  14. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/characters_test.py +19 -6
  15. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/concepts_test.py +18 -5
  16. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/creators_test.py +21 -8
  17. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/issues_test.py +17 -4
  18. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/items_test.py +19 -6
  19. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/locations_test.py +16 -3
  20. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/origins_test.py +19 -4
  21. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/powers_test.py +19 -6
  22. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/publishers_test.py +20 -7
  23. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/story_arcs_test.py +16 -3
  24. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/teams_test.py +16 -3
  25. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/volumes_test.py +19 -4
  26. simyan-3.0.0/uv.lock +1316 -0
  27. {simyan-2.0.0 → simyan-3.0.0}/zensical.toml +2 -5
  28. simyan-2.0.0/.pre-commit-config.yaml +0 -70
  29. simyan-2.0.0/docs/simyan/cache/schemas.md +0 -3
  30. simyan-2.0.0/docs/simyan/cache/sqlite_cache.md +0 -3
  31. simyan-2.0.0/docs/simyan/schemas/index.md +0 -1
  32. simyan-2.0.0/simyan/cache/__init__.py +0 -3
  33. simyan-2.0.0/simyan/cache/schemas.py +0 -20
  34. simyan-2.0.0/simyan/cache/sqlite_cache.py +0 -139
  35. simyan-2.0.0/tests/README.md +0 -9
  36. simyan-2.0.0/tests/cache.sqlite +0 -0
  37. simyan-2.0.0/tests/comicvine_test.py +0 -39
  38. simyan-2.0.0/tests/conftest.py +0 -19
  39. simyan-2.0.0/tests/errors_test.py +0 -21
  40. simyan-2.0.0/tests/limiter_test.py +0 -275
  41. simyan-2.0.0/uv.lock +0 -1209
  42. {simyan-2.0.0 → simyan-3.0.0}/.gitattributes +0 -0
  43. {simyan-2.0.0 → simyan-3.0.0}/.readthedocs.yaml +0 -0
  44. {simyan-2.0.0 → simyan-3.0.0}/LICENSE +0 -0
  45. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/comicvine.md +0 -0
  46. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/errors.md +0 -0
  47. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/index.md +0 -0
  48. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/_base.md +0 -0
  49. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/character.md +0 -0
  50. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/concept.md +0 -0
  51. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/creator.md +0 -0
  52. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/generic_entries.md +0 -0
  53. {simyan-2.0.0/docs/simyan/cache → simyan-3.0.0/docs/simyan/schemas}/index.md +0 -0
  54. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/issue.md +0 -0
  55. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/item.md +0 -0
  56. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/location.md +0 -0
  57. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/origin.md +0 -0
  58. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/power.md +0 -0
  59. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/publisher.md +0 -0
  60. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/story_arc.md +0 -0
  61. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/team.md +0 -0
  62. {simyan-2.0.0 → simyan-3.0.0}/docs/simyan/schemas/volume.md +0 -0
  63. {simyan-2.0.0 → simyan-3.0.0}/simyan/errors.py +0 -0
  64. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/__init__.py +0 -0
  65. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/_base.py +0 -0
  66. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/character.py +0 -0
  67. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/concept.py +0 -0
  68. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/creator.py +0 -0
  69. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/generic_entries.py +0 -0
  70. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/issue.py +0 -0
  71. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/item.py +0 -0
  72. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/location.py +0 -0
  73. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/origin.py +0 -0
  74. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/power.py +0 -0
  75. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/publisher.py +0 -0
  76. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/story_arc.py +0 -0
  77. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/team.py +0 -0
  78. {simyan-2.0.0 → simyan-3.0.0}/simyan/schemas/volume.py +0 -0
  79. {simyan-2.0.0 → simyan-3.0.0}/tests/__init__.py +0 -0
  80. {simyan-2.0.0 → simyan-3.0.0}/tests/schemas/__init__.py +0 -0
@@ -2,6 +2,7 @@
2
2
  __pycache__/
3
3
  __pypackages__/
4
4
  .idea/
5
+ .pytest_cache/
5
6
  .ruff_cache/
6
7
  .tox/
7
8
  .venv/
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Simyan
3
- Version: 2.0.0
3
+ Version: 3.0.0
4
4
  Summary: A Python wrapper for the Comicvine API.
5
5
  Project-URL: Documentation, https://simyan.readthedocs.io/en/stable/
6
6
  Project-URL: Homepage, https://pypi.org/project/Simyan
7
7
  Project-URL: Issues, https://github.com/Metron-Project/Simyan/issues
8
8
  Project-URL: Source, https://github.com/Metron-Project/Simyan
9
- Author-email: BuriedInCode <BuriedInCode@tuta.io>
10
- Maintainer-email: BuriedInCode <BuriedInCode@tuta.io>
9
+ Author-email: BuriedInCode <buriedincode@duckpond.nz>
10
+ Maintainer-email: BuriedInCode <buriedincode@duckpond.nz>
11
11
  License-Expression: GPL-3.0-or-later
12
12
  License-File: LICENSE
13
13
  Keywords: comic,comics,metadata
@@ -26,9 +26,10 @@ Classifier: Programming Language :: Python :: 3.14
26
26
  Classifier: Topic :: Internet
27
27
  Classifier: Typing :: Typed
28
28
  Requires-Python: >=3.10
29
- Requires-Dist: httpx>=0.28.0
30
- Requires-Dist: pydantic>=2.12.0
31
- Requires-Dist: pyrate-limiter>=4.0.0
29
+ Requires-Dist: pydantic>=2.13.0
30
+ Requires-Dist: requests-cache>=1.3.0
31
+ Requires-Dist: requests-ratelimiter>=0.10.0
32
+ Requires-Dist: requests>=2.34.0
32
33
  Description-Content-Type: text/markdown
33
34
 
34
35
  # Simyan
@@ -38,8 +39,9 @@ Description-Content-Type: text/markdown
38
39
  [![PyPI - Version](https://img.shields.io/pypi/v/Simyan.svg?logo=Python&label=Version&style=flat-square)](https://pypi.python.org/pypi/Simyan/)
39
40
  [![PyPI - License](https://img.shields.io/pypi/l/Simyan.svg?logo=Python&label=License&style=flat-square)](https://opensource.org/licenses/GPL-3.0)
40
41
 
41
- [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-informational?logo=pre-commit&style=flat-square)](https://github.com/pre-commit/pre-commit)
42
- [![Ruff](https://img.shields.io/badge/ruff-enabled-informational?logo=ruff&style=flat-square)](https://github.com/astral-sh/ruff)
42
+ [![prek](https://img.shields.io/badge/prek-enabled-informational?logo=prek&style=flat-square)](https://github.com/j178/prek)
43
+ [![Ruff](https://img.shields.io/badge/Ruff-enabled-informational?logo=ruff&style=flat-square)](https://github.com/astral-sh/ruff)
44
+ [![ty](https://img.shields.io/badge/ty-enabled-informational?logo=ruff&style=flat-square)](https://github.com/astral-sh/ty)
43
45
 
44
46
  [![Linting](https://github.com/Metron-Project/Simyan/actions/workflows/linting.yaml/badge.svg)](https://github.com/Metron-Project/Simyan/actions/workflows/linting.yaml)
45
47
  [![Testing](https://github.com/Metron-Project/Simyan/actions/workflows/testing.yaml/badge.svg)](https://github.com/Metron-Project/Simyan/actions/workflows/testing.yaml)
@@ -57,10 +59,19 @@ pip install Simyan
57
59
  ### Example Usage
58
60
 
59
61
  ```python
60
- from simyan.cache import SQLiteCache
62
+ from datetime import timedelta
63
+ from pathlib import Path
64
+
61
65
  from simyan.comicvine import Comicvine
62
66
 
63
- session = Comicvine(api_key="Comicvine API Key", cache=SQLiteCache())
67
+ session = Comicvine(
68
+ api_key="Comicvine API Key",
69
+ cache_path=Path("cache.sqlite"), # Optional, defaults to ~/.cache/simyan/cache.sqlite
70
+ cache_expiry=timedelta(days=1), # Optional, defaults to 14 days
71
+ ratelimit_path=Path(
72
+ "ratelimits.sqlite"
73
+ ), # Optional, defaults to ~/.cache/simyan/ratelimits.sqlite
74
+ )
64
75
 
65
76
  # Search for Publisher
66
77
  results = session.list_publishers(params={"filter": "name:DC Comics"})
@@ -5,8 +5,9 @@
5
5
  [![PyPI - Version](https://img.shields.io/pypi/v/Simyan.svg?logo=Python&label=Version&style=flat-square)](https://pypi.python.org/pypi/Simyan/)
6
6
  [![PyPI - License](https://img.shields.io/pypi/l/Simyan.svg?logo=Python&label=License&style=flat-square)](https://opensource.org/licenses/GPL-3.0)
7
7
 
8
- [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-informational?logo=pre-commit&style=flat-square)](https://github.com/pre-commit/pre-commit)
9
- [![Ruff](https://img.shields.io/badge/ruff-enabled-informational?logo=ruff&style=flat-square)](https://github.com/astral-sh/ruff)
8
+ [![prek](https://img.shields.io/badge/prek-enabled-informational?logo=prek&style=flat-square)](https://github.com/j178/prek)
9
+ [![Ruff](https://img.shields.io/badge/Ruff-enabled-informational?logo=ruff&style=flat-square)](https://github.com/astral-sh/ruff)
10
+ [![ty](https://img.shields.io/badge/ty-enabled-informational?logo=ruff&style=flat-square)](https://github.com/astral-sh/ty)
10
11
 
11
12
  [![Linting](https://github.com/Metron-Project/Simyan/actions/workflows/linting.yaml/badge.svg)](https://github.com/Metron-Project/Simyan/actions/workflows/linting.yaml)
12
13
  [![Testing](https://github.com/Metron-Project/Simyan/actions/workflows/testing.yaml/badge.svg)](https://github.com/Metron-Project/Simyan/actions/workflows/testing.yaml)
@@ -24,10 +25,19 @@ pip install Simyan
24
25
  ### Example Usage
25
26
 
26
27
  ```python
27
- from simyan.cache import SQLiteCache
28
+ from datetime import timedelta
29
+ from pathlib import Path
30
+
28
31
  from simyan.comicvine import Comicvine
29
32
 
30
- session = Comicvine(api_key="Comicvine API Key", cache=SQLiteCache())
33
+ session = Comicvine(
34
+ api_key="Comicvine API Key",
35
+ cache_path=Path("cache.sqlite"), # Optional, defaults to ~/.cache/simyan/cache.sqlite
36
+ cache_expiry=timedelta(days=1), # Optional, defaults to 14 days
37
+ ratelimit_path=Path(
38
+ "ratelimits.sqlite"
39
+ ), # Optional, defaults to ~/.cache/simyan/ratelimits.sqlite
40
+ )
31
41
 
32
42
  # Search for Publisher
33
43
  results = session.list_publishers(params={"filter": "name:DC Comics"})
@@ -5,8 +5,9 @@
5
5
  [![PyPI - Version](https://img.shields.io/pypi/v/Simyan.svg?logo=Python&label=Version&style=flat-square)](https://pypi.python.org/pypi/Simyan/)
6
6
  [![PyPI - License](https://img.shields.io/pypi/l/Simyan.svg?logo=Python&label=License&style=flat-square)](https://opensource.org/licenses/GPL-3.0)
7
7
 
8
- [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-informational?logo=pre-commit&style=flat-square)](https://github.com/pre-commit/pre-commit)
9
- [![Ruff](https://img.shields.io/badge/ruff-enabled-informational?logo=ruff&style=flat-square)](https://github.com/astral-sh/ruff)
8
+ [![prek](https://img.shields.io/badge/prek-enabled-informational?logo=prek&style=flat-square)](https://github.com/j178/prek)
9
+ [![Ruff](https://img.shields.io/badge/Ruff-enabled-informational?logo=ruff&style=flat-square)](https://github.com/astral-sh/ruff)
10
+ [![ty](https://img.shields.io/badge/ty-enabled-informational?logo=ruff&style=flat-square)](https://github.com/astral-sh/ty)
10
11
 
11
12
  [![Linting](https://github.com/Metron-Project/Simyan/actions/workflows/linting.yaml/badge.svg)](https://github.com/Metron-Project/Simyan/actions/workflows/linting.yaml)
12
13
  [![Testing](https://github.com/Metron-Project/Simyan/actions/workflows/testing.yaml/badge.svg)](https://github.com/Metron-Project/Simyan/actions/workflows/testing.yaml)
@@ -24,10 +25,19 @@ pip install Simyan
24
25
  ### Example Usage
25
26
 
26
27
  ```python
27
- from simyan.cache import SQLiteCache
28
+ from datetime import timedelta
29
+ from pathlib import Path
30
+
28
31
  from simyan.comicvine import Comicvine
29
32
 
30
- session = Comicvine(api_key="Comicvine API Key", cache=SQLiteCache())
33
+ session = Comicvine(
34
+ api_key="Comicvine API Key",
35
+ cache_path=Path("cache.sqlite"), # Optional, defaults to ~/.cache/simyan/cache.sqlite
36
+ cache_expiry=timedelta(days=1), # Optional, defaults to 14 days
37
+ ratelimit_path=Path(
38
+ "ratelimits.sqlite"
39
+ ), # Optional, defaults to ~/.cache/simyan/ratelimits.sqlite
40
+ )
31
41
 
32
42
  # Search for Publisher
33
43
  results = session.list_publishers(params={"filter": "name:DC Comics"})
@@ -47,8 +57,3 @@ print(result.summary)
47
57
  ## Bugs/Requests
48
58
 
49
59
  Please use the [GitHub issue tracker](https://github.com/Metron-Project/Simyan/issues) to submit bugs or request features.
50
-
51
- ## Contributing
52
-
53
- - When running a new test for the first time, set the environment variable `COMICVINE__API_KEY` to your Comicvine API key.
54
- The responses will be cached in the `tests/cache.sqlite` database without your key.
simyan-3.0.0/prek.toml ADDED
@@ -0,0 +1,53 @@
1
+ [[repos]]
2
+ hooks = [
3
+ {args = ["--all", "--in-place"], entry = "toml-sort", exclude = ".*.lock", id = "toml-sort", language = "system", name = "toml sort", types = ["toml"]},
4
+ {args = ["--number", "--wrap=keep"], entry = "mdformat", exclude = "(.github/ISSUE_TEMPLATE/.*|docs/simyan/schemas/_base).md", id = "mdformat", language = "system", name = "mdformat", types = ["markdown"]},
5
+ {entry = "ruff check .", id = "ruff-check", language = "system", name = "ruff check", pass_filenames = false, types = ["python"]},
6
+ {entry = "ruff format .", id = "ruff-format", language = "system", name = "ruff format", pass_filenames = false, types = ["python"]},
7
+ {entry = "ty check .", id = "ty", language = "system", name = "ty", pass_filenames = false, types = ["python"]},
8
+ ]
9
+ repo = "local"
10
+
11
+ [[repos]]
12
+ hooks = [
13
+ {args = ["--allow-multiple-documents"], id = "check-yaml"},
14
+ {args = ["--assume-in-merge"], id = "check-merge-conflict"},
15
+ {args = ["--markdown-linebreak-ext=md"], id = "trailing-whitespace"},
16
+ {exclude_types = ["json", "svg", "xml"], id = "end-of-file-fixer"},
17
+ {id = "check-added-large-files"},
18
+ {id = "check-case-conflict"},
19
+ {id = "check-executables-have-shebangs"},
20
+ {id = "check-json"},
21
+ {id = "check-json5"},
22
+ {id = "check-symlinks"},
23
+ {id = "check-toml"},
24
+ {id = "check-xml"},
25
+ {id = "detect-private-key"},
26
+ {id = "fix-byte-order-marker"},
27
+ {id = "mixed-line-ending"},
28
+ ]
29
+ repo = "builtin"
30
+
31
+ [[repos]]
32
+ hooks = [
33
+ {args = ["--autofix", "--indent=2"], id = "pretty-format-json"},
34
+ {id = "check-ast"},
35
+ {id = "check-builtin-literals"},
36
+ {id = "check-docstring-first"},
37
+ {id = "check-illegal-windows-names"},
38
+ {id = "check-merge-conflict"},
39
+ {id = "check-shebang-scripts-are-executable"},
40
+ {id = "check-vcs-permalinks"},
41
+ {id = "debug-statements"},
42
+ {id = "forbid-submodules"},
43
+ {id = "name-tests-test"},
44
+ ]
45
+ repo = "https://github.com/pre-commit/pre-commit-hooks"
46
+ rev = "v6.0.0"
47
+
48
+ [[repos]]
49
+ hooks = [
50
+ # {id = "check-hooks-apply"},
51
+ {id = "check-useless-excludes"},
52
+ ]
53
+ repo = "meta"