diff --git a/poetry.lock b/poetry.lock index 50bc7e2..6739089 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,3 +1,14 @@ +[[package]] +name = "asgiref" +version = "3.5.2" +description = "ASGI specs, helper code, and adapters" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"] + [[package]] name = "attrs" version = "22.1.0" @@ -12,17 +23,6 @@ docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"] tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"] -[[package]] -name = "babel" -version = "2.10.3" -description = "Internationalization utilities" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -pytz = ">=2015.7" - [[package]] name = "black" version = "22.6.0" @@ -55,11 +55,11 @@ python-versions = ">=3.6" [[package]] name = "charset-normalizer" -version = "2.0.12" +version = "2.1.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false -python-versions = ">=3.5.0" +python-versions = ">=3.6.0" [package.extras] unicode_backport = ["unicodedata2"] @@ -102,6 +102,14 @@ category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*" +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + [[package]] name = "diff-match-patch" version = "20200713" @@ -112,18 +120,19 @@ python-versions = ">=2.7" [[package]] name = "django" -version = "2.2.28" +version = "3.2.14" description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design." category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.6" [package.dependencies] +asgiref = ">=3.3.2,<4" pytz = "*" sqlparse = ">=0.2.2" [package.extras] -argon2 = ["argon2-cffi (>=16.1.0)"] +argon2 = ["argon2-cffi (>=19.1.0)"] bcrypt = ["bcrypt"] [[package]] @@ -139,15 +148,14 @@ six = "*" [[package]] name = "django-auditlog" -version = "0.4.7" +version = "2.1.1" description = "Audit log app for Django" category = "main" optional = false python-versions = "*" [package.dependencies] -django-jsonfield = ">=1.0.0" -python-dateutil = "2.6.0" +python-dateutil = ">=2.7.0" [[package]] name = "django-autocomplete-light" @@ -168,16 +176,8 @@ tags = ["django-taggit"] [[package]] name = "django-bootstrap3" -version = "11.1.0" -description = "Bootstrap support for Django projects" -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "django-cors-headers" -version = "3.11.0" -description = "django-cors-headers is a Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS)." +version = "21.2" +description = "Bootstrap 3 support for Django projects" category = "main" optional = false python-versions = ">=3.7" @@ -185,61 +185,62 @@ python-versions = ">=3.7" [package.dependencies] Django = ">=2.2" +[[package]] +name = "django-cors-headers" +version = "3.13.0" +description = "django-cors-headers is a Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS)." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +Django = ">=3.2" + [[package]] name = "django-filter" -version = "2.4.0" +version = "22.1" description = "Django-filter is a reusable Django application for allowing users to filter querysets dynamically." category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.7" [package.dependencies] -Django = ">=2.2" +Django = ">=3.2" [[package]] name = "django-import-export" -version = "0.7.0" -description = "Django application and library for importing and exportingdata with included admin integration." +version = "2.8.0" +description = "Django application and library for importing and exporting data with included admin integration." category = "main" optional = false -python-versions = "*" +python-versions = ">=3.7" [package.dependencies] diff-match-patch = "*" -django = ">=1.5" -tablib = "*" - -[[package]] -name = "django-jsonfield" -version = "1.4.1" -description = "JSONField for django models" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -Django = ">=1.11" -six = "*" +Django = ">=3.2" +tablib = {version = ">=3.0.0", extras = ["html", "ods", "xls", "xlsx", "yaml"]} [[package]] name = "django-modeltranslation" -version = "0.13.4" +version = "0.18.4" description = "Translates Django models using a registration approach." category = "main" optional = false python-versions = "*" +[package.dependencies] +Django = ">=3.2" + [[package]] name = "django-phonenumber-field" -version = "4.0.0" +version = "6.3.0" description = "An international phone number field for django models." category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.7" [package.dependencies] -babel = "*" -Django = ">=1.11.3" +Django = ">=2.2" phonenumbers = {version = ">=7.0.2", optional = true, markers = "extra == \"phonenumbers\""} [package.extras] @@ -267,7 +268,7 @@ python-versions = "*" [[package]] name = "django-tables2" -version = "1.21.2" +version = "2.4.1" description = "Table/data-grid framework for Django" category = "main" optional = false @@ -419,6 +420,14 @@ importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} [package.extras] testing = ["coverage", "pyyaml"] +[[package]] +name = "markuppy" +version = "1.14" +description = "An HTML/XML generator" +category = "main" +optional = false +python-versions = "*" + [[package]] name = "mypy-extensions" version = "0.4.3" @@ -427,6 +436,17 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "odfpy" +version = "1.4.1" +description = "Python API and tools to manipulate OpenDocument files" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +defusedxml = "*" + [[package]] name = "openpyxl" version = "2.6.4" @@ -579,11 +599,11 @@ python-versions = ">=3.7" [[package]] name = "python-dateutil" -version = "2.6.0" +version = "2.8.2" description = "Extensions to the standard Python datetime module" category = "main" optional = false -python-versions = "*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" [package.dependencies] six = ">=1.5" @@ -619,7 +639,7 @@ python-versions = "*" name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" -category = "dev" +category = "main" optional = false python-versions = ">=3.6" @@ -755,6 +775,14 @@ category = "main" optional = false python-versions = ">=3.7" +[package.dependencies] +markuppy = {version = "*", optional = true, markers = "extra == \"html\""} +odfpy = {version = "*", optional = true, markers = "extra == \"ods\""} +openpyxl = {version = ">=2.6.0", optional = true, markers = "extra == \"xlsx\""} +pyyaml = {version = "*", optional = true, markers = "extra == \"yaml\""} +xlrd = {version = "*", optional = true, markers = "extra == \"xls\""} +xlwt = {version = "*", optional = true, markers = "extra == \"xls\""} + [package.extras] all = ["markuppy", "odfpy", "openpyxl (>=2.6.0)", "pandas", "pyyaml", "tabulate", "xlrd", "xlwt"] cli = ["tabulate"] @@ -829,6 +857,27 @@ python-versions = ">=3.7" [package.extras] brotli = ["brotli"] +[[package]] +name = "xlrd" +version = "2.0.1" +description = "Library for developers to extract data from Microsoft Excel (tm) .xls spreadsheet files" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[package.extras] +build = ["wheel", "twine"] +docs = ["sphinx"] +test = ["pytest", "pytest-cov"] + +[[package]] +name = "xlwt" +version = "1.3.0" +description = "Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform, with Python 2.6, 2.7, 3.3+" +category = "main" +optional = false +python-versions = "*" + [[package]] name = "zipp" version = "3.8.1" @@ -844,17 +893,14 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" python-versions = "^3.9" -content-hash = "8d2bb2ad4665423f588340667a8a5c6714409253bd66459f052a7a4757d745e8" +content-hash = "2e1fed695d241a00bf66c28b725b4a933a42158af8a36ffbbd1910cf80cd1858" [metadata.files] +asgiref = [] attrs = [] -babel = [] black = [] certifi = [] -charset-normalizer = [ - {file = "charset-normalizer-2.0.12.tar.gz", hash = "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597"}, - {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, -] +charset-normalizer = [] click = [ {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, @@ -865,50 +911,29 @@ decorator = [ {file = "decorator-4.4.2-py2.py3-none-any.whl", hash = "sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760"}, {file = "decorator-4.4.2.tar.gz", hash = "sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7"}, ] +defusedxml = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] diff-match-patch = [ {file = "diff-match-patch-20200713.tar.gz", hash = "sha256:da6f5a01aa586df23dfc89f3827e1cafbb5420be9d87769eeb079ddfd9477a18"}, {file = "diff_match_patch-20200713-py3-none-any.whl", hash = "sha256:8bf9d9c4e059d917b5c6312bac0c137971a32815ddbda9c682b949f2986b4d34"}, ] -django = [ - {file = "Django-2.2.28-py3-none-any.whl", hash = "sha256:365429d07c1336eb42ba15aa79f45e1c13a0b04d5c21569e7d596696418a6a45"}, - {file = "Django-2.2.28.tar.gz", hash = "sha256:0200b657afbf1bc08003845ddda053c7641b9b24951e52acd51f6abda33a7413"}, -] +django = [] django-app-namespace-template-loader = [ {file = "django-app-namespace-template-loader-0.4.1.tar.gz", hash = "sha256:7a450985479a2e07fe8a1e4e8208fc9e1d8b35503526dd28eba5f8ad4ba31d4e"}, {file = "django_app_namespace_template_loader-0.4.1-py2.py3-none-any.whl", hash = "sha256:356539413b5d1de0eff91aea7a03806b5ef6874ee5420ea8c273f72bbc601d74"}, ] -django-auditlog = [ - {file = "django-auditlog-0.4.7.tar.gz", hash = "sha256:1848952e02759cd2ebf1ec980ed3ef5b855b3501936dcea23eac41313e39c0b1"}, -] +django-auditlog = [] django-autocomplete-light = [ {file = "django-autocomplete-light-3.9.4.tar.gz", hash = "sha256:0f6da75c1c7186698b867a467a8cdb359f0513fdd8e09288a0c2fb018ae3d94e"}, ] -django-bootstrap3 = [ - {file = "django-bootstrap3-11.1.0.tar.gz", hash = "sha256:c417b25328fb8e97cb89e1f07d35632602d702e6eaca863328e833939d0d1743"}, -] -django-cors-headers = [ - {file = "django-cors-headers-3.11.0.tar.gz", hash = "sha256:eb98389bf7a2afc5d374806af4a9149697e3a6955b5a2dc2bf049f7d33647456"}, - {file = "django_cors_headers-3.11.0-py3-none-any.whl", hash = "sha256:a22be2befd4069c4fc174f11cf067351df5c061a3a5f94a01650b4e928b0372b"}, -] -django-filter = [ - {file = "django-filter-2.4.0.tar.gz", hash = "sha256:84e9d5bb93f237e451db814ed422a3a625751cbc9968b484ecc74964a8696b06"}, - {file = "django_filter-2.4.0-py3-none-any.whl", hash = "sha256:e00d32cebdb3d54273c48f4f878f898dced8d5dfaad009438fe61ebdf535ace1"}, -] -django-import-export = [ - {file = "django-import-export-0.7.0.tar.gz", hash = "sha256:6e748fcc647fe2a82a55136ebcbe806a45fd7fb5b1e32b33759181f1e67eeb1b"}, - {file = "django_import_export-0.7.0-py2.py3-none-any.whl", hash = "sha256:7e7ebeb40702eafeb2e770914c01b9961063f472b3b395eeffbea5f39efa7257"}, -] -django-jsonfield = [ - {file = "django-jsonfield-1.4.1.tar.gz", hash = "sha256:f789a0ea1f80b48aff7d6c36dd356ce125dbf1b7cd97a82d315607ac758f50ff"}, - {file = "django_jsonfield-1.4.1-py2.py3-none-any.whl", hash = "sha256:ccb2fe623e1bf7799e49c593b0a89a85084ef8d3debbf26d92a54e27b5305d72"}, -] -django-modeltranslation = [ - {file = "django-modeltranslation-0.13.4.tar.gz", hash = "sha256:c03070a29e35b498da3f07e80d6847bf9236e6231102829e62d437b6022cfb5c"}, -] -django-phonenumber-field = [ - {file = "django-phonenumber-field-4.0.0.tar.gz", hash = "sha256:d4580cc3352f4433962825f9927e6669852c1b40ec484fcb5a74064dabc1201a"}, - {file = "django_phonenumber_field-4.0.0-py3-none-any.whl", hash = "sha256:2ca3bb0ada0ebc164bd903a981a34f1202a4294006e520b0da961bd7ce9f20a4"}, -] +django-bootstrap3 = [] +django-cors-headers = [] +django-filter = [] +django-import-export = [] +django-modeltranslation = [] +django-phonenumber-field = [] django-polymorphic = [ {file = "django-polymorphic-3.1.0.tar.gz", hash = "sha256:d6955b5308bf6e41dcb22ba7c96f00b51dfa497a8a5ab1e9c06c7951bf417bf8"}, {file = "django_polymorphic-3.1.0-py3-none-any.whl", hash = "sha256:08bc4f4f4a773a19b2deced5a56deddd1ef56ebd15207bf4052e2901c25ef57e"}, @@ -917,9 +942,7 @@ django-suit = [ {file = "django-suit-0.2.28.tar.gz", hash = "sha256:bacd8a079fcc08deb6efd0d7f60241e3c319526939ae1abe8ccfbc1b03e97104"}, {file = "django_suit-0.2.28-py2.py3-none-any.whl", hash = "sha256:256412597ac8e9461780542eebb12b37f65ff702bf23de23d07d245510c64ff2"}, ] -django-tables2 = [ - {file = "django-tables2-1.21.2.tar.gz", hash = "sha256:c5c979201b7a2f7e88f2784dcd478e0c809d3a2053dea576cb71ce51676bbf7a"}, -] +django-tables2 = [] djangorestframework = [ {file = "djangorestframework-3.13.1-py3-none-any.whl", hash = "sha256:24c4bf58ed7e85d1fe4ba250ab2da926d263cd57d64b03e8dcef0ac683f8b1aa"}, {file = "djangorestframework-3.13.1.tar.gz", hash = "sha256:0c33407ce23acc68eca2a6e46424b008c9c02eceb8cf18581921d0092bc1f2ee"}, @@ -951,10 +974,17 @@ lml = [ {file = "lml-0.1.0.tar.gz", hash = "sha256:57a085a29bb7991d70d41c6c3144c560a8e35b4c1030ffb36d85fa058773bcc5"}, ] markdown = [] +markuppy = [ + {file = "MarkupPy-1.14.tar.gz", hash = "sha256:1adee2c0a542af378fe84548ff6f6b0168f3cb7f426b46961038a2bcfaad0d5f"}, +] mypy-extensions = [ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, ] +odfpy = [ + {file = "odfpy-1.4.1-py2.7.egg", hash = "sha256:fc3b8d1bc098eba4a0fda865a76d9d1e577c4ceec771426bcb169a82c5e9dfe0"}, + {file = "odfpy-1.4.1.tar.gz", hash = "sha256:db766a6e59c5103212f3cc92ec8dd50a0f3a02790233ed0b52148b70d3c438ec"}, +] openpyxl = [ {file = "openpyxl-2.6.4.tar.gz", hash = "sha256:1d53801678e18d7fe38c116f1ad0c2383a654670c4c8806105b611c92d92f2e3"}, ] @@ -1013,11 +1043,7 @@ pyrsistent = [ {file = "pyrsistent-0.18.1-cp39-cp39-win_amd64.whl", hash = "sha256:e24a828f57e0c337c8d8bb9f6b12f09dfdf0273da25fda9e314f0b684b415a07"}, {file = "pyrsistent-0.18.1.tar.gz", hash = "sha256:d4d61f8b993a7255ba714df3aca52700f8125289f84f704cf80916517c46eb96"}, ] -python-dateutil = [ - {file = "python-dateutil-2.6.0.tar.gz", hash = "sha256:62a2f8df3d66f878373fd0072eacf4ee52194ba302e00082828e0d263b0418d2"}, - {file = "python-dateutil-2.6.0.zip", hash = "sha256:3acbef017340600e9ff8f2994d8f7afd6eacb295383f286466a6df3961e486f0"}, - {file = "python_dateutil-2.6.0-py2.py3-none-any.whl", hash = "sha256:537bf2a8f8ce6f6862ad705cd68f9e405c0b5db014aa40fa29eab4335d4b1716"}, -] +python-dateutil = [] python-dotenv = [ {file = "python-dotenv-0.20.0.tar.gz", hash = "sha256:b7e3b04a59693c42c36f9ab1cc2acc46fa5df8c78e178fc33a8d4cd05c8d498f"}, {file = "python_dotenv-0.20.0-py3-none-any.whl", hash = "sha256:d92a187be61fe482e4fd675b6d52200e7be63a12b724abbf931a40ce4fa92938"}, @@ -1107,4 +1133,12 @@ uwsgi = [ {file = "uwsgi-2.0.20.tar.gz", hash = "sha256:88ab9867d8973d8ae84719cf233b7dafc54326fcaec89683c3f9f77c002cdff9"}, ] whitenoise = [] +xlrd = [ + {file = "xlrd-2.0.1-py2.py3-none-any.whl", hash = "sha256:6a33ee89877bd9abc1158129f6e94be74e2679636b8a205b43b85206c3f0bbdd"}, + {file = "xlrd-2.0.1.tar.gz", hash = "sha256:f72f148f54442c6b056bf931dbc34f986fd0c3b0b6b5a58d013c9aef274d0c88"}, +] +xlwt = [ + {file = "xlwt-1.3.0-py2.py3-none-any.whl", hash = "sha256:a082260524678ba48a297d922cc385f58278b8aa68741596a87de01a9c628b2e"}, + {file = "xlwt-1.3.0.tar.gz", hash = "sha256:c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88"}, +] zipp = [] diff --git a/pyproject.toml b/pyproject.toml index d9ef284..809f8c5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,25 +7,25 @@ authors = ["Aarni Halinen aarni.halinen@sahkoinsinoorikilta.fi"] [tool.poetry.dependencies] python = "^3.9" decorator = "^4.0.9" -Django = "^2.2.19" +Django = "^3.2.14" requests = "^2.28.1" -django-cors-headers = "^3.7.0" +django-cors-headers = "^3.13.0" djangorestframework = "^3.12.4" psycopg2-binary = "^2.9.3" -django-bootstrap3 = "^11.1.0" -django-tables2 = "^1.6.1" -django-modeltranslation = "^0.13b1" -django-auditlog = "^0.4.5" -django-phonenumber-field = {version = "^4.0.0", extras = ["phonenumbers"]} +django-bootstrap3 = "^21.2" +django-tables2 = "^2.4.1" +django-modeltranslation = "^0.18.4" +django-auditlog = "^2.1.1" +django-phonenumber-field = {version = "^6.3.0", extras = ["phonenumbers"]} django-autocomplete-light = "^3.4.1" six = "^1.12.0" django-suit = "^0.2.26" pyexcel = "^0.5.14" pyexcel-xlsx = "^0.5.8" -django-import-export = "^0.7.0" +django-import-export = "^2.8.0" openpyxl = "^2.6.4" django-app-namespace-template-loader = "^0.4.1" -django-filter = "^2.0.0" +django-filter = "^22.1" whitenoise = "^6.2.0" jsonschema = "^4.9.0" Markdown = "^3.2.2"