diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index e8bd0843..a002fcae 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -17,10 +17,10 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10", "3.11"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4 - - name: Setup python + - name: Setup pythonß uses: actions/setup-python@v5 with: cache: "pip" diff --git a/README.md b/README.md index 336e3e8d..fab44b5f 100644 --- a/README.md +++ b/README.md @@ -22,14 +22,9 @@ with `pip` or `poetry`: - [pydantic](https://docs.pydantic.dev/): `pip install 'dataclasses-avroschema[pydantic]'` or `poetry add dataclasses-avroschema --extras "pydantic"` - [faust-streaming](https://github.com/faust-streaming/faust): `pip install 'dataclasses-avroschema[faust]'` or `poetry add dataclasses-avroschema --extras "faust"` - [faker](https://github.com/joke2k/faker): `pip install 'dataclasses-avroschema[faker]'` or `poetry add dataclasses-avroschema --extras "faker"` +- [dc-avro](https://marcosschroh.github.io/dc-avro/): `pip install 'dataclasses-avroschema[cli]'` or `poetry add dataclasses-avroschema --with cli` -*Note*: You can install all extra dependencies with `pip install dataclasses-avroschema[faust, pydantic, faker]` or `poetry add dataclasses-avroschema --extras "pydantic faust faker"` - -### CLI - -To install `avro schemas cli` install [dc-avro](https://marcosschroh.github.io/dc-avro/) - -`pip install 'dataclasses-avroschema[cli]'` or `poetry add dataclasses-avroschema --with cli` +*Note*: You can install all extra dependencies with `pip install dataclasses-avroschema[faust,pydantic,faker,cli]` or `poetry add dataclasses-avroschema --extras "pydantic faust faker cli"` ## Documentation diff --git a/docs/index.md b/docs/index.md index 6a7c2093..d0ac6731 100644 --- a/docs/index.md +++ b/docs/index.md @@ -22,14 +22,9 @@ with `pip` or `poetry`: - [pydantic](https://docs.pydantic.dev/): `pip install 'dataclasses-avroschema[pydantic]'` or `poetry add dataclasses-avroschema --extras "pydantic"` - [faust-streaming](https://github.com/faust-streaming/faust): `pip install 'dataclasses-avroschema[faust]'` or `poetry add dataclasses-avroschema --extras "faust "` - [faker](https://github.com/joke2k/faker): `pip install 'dataclasses-avroschema[faker]'` or `poetry add dataclasses-avroschema --extras "faker"` +- [dc-avro](https://marcosschroh.github.io/dc-avro/): `pip install 'dataclasses-avroschema[cli]'` or `poetry add dataclasses-avroschema --with cli` -*Note*: You can install all extra dependencies with `pip install dataclasses-avroschema[faust, pydantic, faker]` or `poetry add dataclasses-avroschema --extras "pydantic faust faker"` - -### CLI - -To install `avro schemas cli` install [dc-avro](https://marcosschroh.github.io/dc-avro/) - -`pip install 'dataclasses-avroschema[cli]'` or `poetry add dataclasses-avroschema --with cli` +*Note*: You can install all extra dependencies with `pip install dataclasses-avroschema[faust,pydantic,faker,cli]` or `poetry add dataclasses-avroschema --extras "pydantic faust faker cli"` ## Usage diff --git a/poetry.lock b/poetry.lock index 11b060a8..8566501c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -4,7 +4,7 @@ name = "aiofiles" version = "22.1.0" description = "File support for asyncio." -optional = false +optional = true python-versions = ">=3.7,<4.0" files = [ {file = "aiofiles-22.1.0-py3-none-any.whl", hash = "sha256:1142fa8e80dbae46bb6339573ad4c8c0841358f79c6eb50a493dceca14621bad"}, @@ -216,7 +216,7 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} name = "anyio" version = "4.2.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "anyio-4.2.0-py3-none-any.whl", hash = "sha256:745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee"}, @@ -581,7 +581,7 @@ dev = ["black", "coveralls", "mypy", "pre-commit", "pylint", "pytest (>=5)", "py name = "dc-avro" version = "0.8.0" description = "" -optional = false +optional = true python-versions = ">=3.8,<4.0" files = [ {file = "dc_avro-0.8.0-py3-none-any.whl", hash = "sha256:89d5da8ec55f283443e565c428d9880d8f252d992613247792e8b81ca3f615a9"}, @@ -610,7 +610,7 @@ files = [ name = "deepdiff" version = "6.7.1" description = "Deep Difference and Search of any Python object/data. Recreate objects by adding adding deltas to each other." -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "deepdiff-6.7.1-py3-none-any.whl", hash = "sha256:58396bb7a863cbb4ed5193f548c56f18218060362311aa1dc36397b2f25108bd"}, @@ -912,7 +912,7 @@ colorama = ">=0.4" name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, @@ -923,7 +923,7 @@ files = [ name = "httpcore" version = "0.16.3" description = "A minimal low-level HTTP client." -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "httpcore-0.16.3-py3-none-any.whl", hash = "sha256:da1fb708784a938aa084bde4feb8317056c55037247c787bd7e19eb2c2949dc0"}, @@ -944,7 +944,7 @@ socks = ["socksio (==1.*)"] name = "httpx" version = "0.23.3" description = "The next generation HTTP client." -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "httpx-0.23.3-py3-none-any.whl", hash = "sha256:a211fcce9b1254ea24f0cd6af9869b3d29aba40154e947d2a07bb499b3e310d6"}, @@ -1067,7 +1067,7 @@ testing = ["coverage", "pyyaml"] name = "markdown-it-py" version = "3.0.0" description = "Python port of markdown-it. Markdown parsing, done right!" -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, @@ -1160,7 +1160,7 @@ files = [ name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, @@ -1532,7 +1532,7 @@ tests = ["Sphinx", "doubles", "flake8", "flake8-quotes", "gevent", "mock", "pyte name = "ordered-set" version = "4.1.0" description = "An OrderedSet is a custom MutableSet that remembers its order, so that every" -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "ordered-set-4.1.0.tar.gz", hash = "sha256:694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8"}, @@ -2055,7 +2055,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rfc3986" version = "1.5.0" description = "Validating URI References per RFC 3986" -optional = false +optional = true python-versions = "*" files = [ {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"}, @@ -2072,7 +2072,7 @@ idna2008 = ["idna"] name = "rich" version = "13.7.0" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -optional = false +optional = true python-versions = ">=3.7.0" files = [ {file = "rich-13.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"}, @@ -2118,7 +2118,7 @@ files = [ name = "shellingham" version = "1.5.4" description = "Tool to Detect Surrounding Shell" -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, @@ -2140,7 +2140,7 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, @@ -2209,7 +2209,7 @@ files = [ name = "typer" version = "0.9.0" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." -optional = false +optional = true python-versions = ">=3.6" files = [ {file = "typer-0.9.0-py3-none-any.whl", hash = "sha256:5d96d986a21493606a358cae4461bd8cdf83cbf33a5aa950ae629ca3b51467ee"}, @@ -2465,6 +2465,7 @@ doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linke test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [extras] +cli = ["dc-avro"] faker = ["faker"] faust = ["faust-streaming"] pydantic = ["pydantic"] @@ -2472,4 +2473,4 @@ pydantic = ["pydantic"] [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "af4bef4f3300ca37fd9d437c0592f5077772ab2d63b8da117dd3652ff94c1e18" +content-hash = "b47e65b40e8c46f0a3612a0f9e03676086da87ed7eed2d09839c3d5c9aeda145" diff --git a/pyproject.toml b/pyproject.toml index e751889e..751f7d8d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,6 +30,7 @@ casefy = "^0.1.7" typing-extensions = "^4.2.0" pydantic = {version = "^2.4.2", optional = true, extras = ["email"]} python-dateutil = "^2.9.0.post0" +dc-avro = {version =">=0.6.4,<0.9.0", optional = true} [tool.poetry.group.dev.dependencies] mypy = "^1.8.0" @@ -45,9 +46,6 @@ mkdocs-material = "^9" mkdocstrings = {version = ">=0.24,<0.26", extras = ["python"]} mktestdocs = "^0.2.2" -[tool.poetry.group.cli.dependencies] -dc-avro = ">=0.6.4,<0.9.0" - [tool.poetry.group.ci-publish.dependencies] commitizen = "^3.2.2" @@ -61,6 +59,9 @@ faust = [ faker = [ "faker" ] +cli = [ + "dc-avro" +] [build-system] requires = ["poetry-core"]