From d06a677b0d9874c4cbae47b17867c7518e50cac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Zadro=C5=BCny?= Date: Sun, 18 Nov 2018 19:09:26 +0100 Subject: [PATCH] Remove pipenv from requirements in production Closes: #32 --- .circleci/config.yml | 185 +++++++------- Makefile | 4 +- Pipfile | 6 +- Pipfile.lock | 406 ++++++++++++++++++------------- README.rst | 25 +- example/advanced.py | 4 +- setup.cfg | 3 +- setup.py | 11 +- tests/test_dotty_value_access.py | 8 +- tox.ini | 5 +- 10 files changed, 363 insertions(+), 294 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a898298..25624c5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,127 +1,118 @@ # Python CircleCI 2.0 configuration file # Check https://circleci.com/docs/2.0/language-python/ for more details version: 2 + +defaults: &defaults + working_directory: ~/repo + +read_cache: &read_cache + keys: + - v1-dependencies-{{ checksum "Pipfile.lock" }} + - v1-dependencies- + +install_devdeps: &install_devdeps + name: install dependencies + command: | + pip install pipenv + pipenv install --three --ignore-pipfile + pipenv install --three --dev --ignore-pipfile + +store_cache: &store_cache + paths: + - ./repo + key: v1-dependencies-{{ checksum "Pipfile.lock" }} + +run_tests: &run_tests + name: run tests + command: pipenv run pytest + jobs: py35: + <<: *defaults docker: - - image: circleci/python:3.5.5 - working_directory: ~/repo + - image: circleci/python:3.5.6 steps: - - checkout - - restore_cache: - keys: - - v1-dependencies-{{ checksum "Pipfile.lock" }} - - v1-dependencies- - - run: - name: install dependencies - command: | - pip install pipenv - pipenv install --three --ignore-pipfile - pipenv install --three --dev --ignore-pipfile - - save_cache: - paths: - - ./repo - key: v1-dependencies-{{ checksum "Pipfile.lock" }} - - run: - name: run tests - command: pipenv run pytest + - checkout + - restore_cache: *read_cache + - run: *install_devdeps + - save_cache: *store_cache + - run: *run_tests py36: + <<: *defaults docker: - - image: circleci/python:3.6.4 - working_directory: ~/repo + - image: circleci/python:3.6.7 + steps: + - checkout + - restore_cache: *read_cache + - run: *install_devdeps + - save_cache: *store_cache + - run: *run_tests + py37: + <<: *defaults + docker: + - image: circleci/python:3.7.1 steps: - - checkout - - restore_cache: - keys: - - v1-dependencies-{{ checksum "Pipfile.lock" }} - - v1-dependencies- - - run: - name: install dependencies - command: | - pip install pipenv - pipenv install --three --ignore-pipfile - pipenv install --three --dev --ignore-pipfile - - save_cache: - paths: - - ./repo - key: v1-dependencies-{{ checksum "Pipfile.lock" }} - - run: - name: run tests - command: pipenv run pytest + - checkout + - restore_cache: *read_cache + - run: *install_devdeps + - save_cache: *store_cache + - run: *run_tests + pypy35: docker: - - image: pypy:3-5.10 - working_directory: ~/repo + - image: pypy:3-5.10 + <<: *defaults steps: - - checkout - - restore_cache: - keys: - - v1-dependencies-{{ checksum "Pipfile.lock" }} - - v1-dependencies- - - run: - name: install dependencies - command: | - pip install pipenv==11.7.4 - pipenv install --python `which pypy3` --ignore-pipfile - pipenv install --python `which pypy3` --dev --ignore-pipfile - - save_cache: - paths: - - ./repo - key: v1-dependencies-{{ checksum "Pipfile.lock" }} - - run: - name: run tests - command: pipenv run pytest + - checkout + - restore_cache: *read_cache + - run: + name: Install pipenv + command: pip install pipenv==11.7.4 + - run: + name: Install missing libraries + command: | + pipenv --python `which pypy3` run pip install pathlib2 + - run: + name: install dependencies + command: | + pipenv install --python `which pypy3` --ignore-pipfile + pipenv install --python `which pypy3` --dev --ignore-pipfile + - save_cache: *store_cache + - run: *run_tests + flake8: docker: - image: circleci/python:3.6.4 - working_directory: ~/repo + <<: *defaults steps: - - checkout - - restore_cache: - keys: - - v1-dependencies-{{ checksum "Pipfile.lock" }} - - v1-dependencies- - - run: - name: install dependencies - command: | - pip install pipenv - pipenv install --three --ignore-pipfile - pipenv install --three --dev --ignore-pipfile - - save_cache: - paths: - - ./repo - key: v1-dependencies-{{ checksum "Pipfile.lock" }} - - run: - name: run tests - command: pipenv run flake8 vo tests + - checkout + - restore_cache: *read_cache + - run: *install_devdeps + - save_cache: *store_cache + - run: + name: run tests + command: pipenv run flake8 vo tests + docs: docker: - image: circleci/python:3.6.4 - working_directory: ~/repo + <<: *defaults steps: - - checkout - - restore_cache: - keys: - - v1-dependencies-{{ checksum "Pipfile.lock" }} - - v1-dependencies- - - run: - name: install dependencies - command: | - pip install pipenv - pipenv install --three --dev --ignore-pipfile - - save_cache: - paths: - - ./repo - key: v1-dependencies-{{ checksum "Pipfile.lock" }} - - run: - name: build docs - command: pipenv run make docs + - checkout + - restore_cache: *read_cache + - run: *install_devdeps + - save_cache: *store_cache + - run: + name: build docs + command: pipenv run make docs + workflows: version: 2 test_all: jobs: - py35 - py36 + - py37 - pypy35 - flake8 - docs \ No newline at end of file diff --git a/Makefile b/Makefile index 88ab629..03a47e2 100644 --- a/Makefile +++ b/Makefile @@ -6,8 +6,6 @@ help: install: ## install dependencies pipenv install - -install-dev: install ## install dev dependencies pipenv install --dev clean: clean-build clean-pyc clean-cache @@ -52,4 +50,4 @@ release: sdist ## package and upload a release sdist: clean ## package pipenv run python setup.py sdist gpg --detach-sign -a dist/*.tar.gz - ls -l dist \ No newline at end of file + ls -l dist diff --git a/Pipfile b/Pipfile index 1dbf8cd..47f4672 100644 --- a/Pipfile +++ b/Pipfile @@ -3,12 +3,11 @@ url = "https://pypi.org/simple/" verify_ssl = true name = "pypi" - [packages] [dev-packages] bumpversion = "*" -coverage = "*" +coverage = "==4.5.2" "flake8" = "*" "flake8-bandit" = "*" "flake8-bugbear" = "*" @@ -17,10 +16,11 @@ coverage = "*" "flake8-import-order" = "*" "flake8-rst-docstrings" = "*" "pep8-naming" = "*" -pytest = "*" +pytest = "==4.0.0" setuptools-scm = "*" sphinx = "*" sphinx-rtd-theme = "*" tox-pyenv = "*" tox = "*" twine = "*" +pathlib2 = "*" diff --git a/Pipfile.lock b/Pipfile.lock index 24f5a7b..c5b2ee8 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "f9669b8fcf45332869d2a968bde5431b898f89e809507fb3842f17e7ddd3c1e4" + "sha256": "9a52d6a6cb50928a250c5b74640abace2be22d856d48f4c1c7395b5c2ad5669f" }, "pipfile-spec": 6, "requires": {}, @@ -17,31 +17,45 @@ "develop": { "alabaster": { "hashes": [ - "sha256:2eef172f44e8d301d25aff8068fddd65f767a3f04b5f15b0f4922f113aa1c732", - "sha256:37cdcb9e9954ed60912ebc1ca12a9d12178c26637abdf124e3cde2341c257fe0" + "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359", + "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02" ], - "version": "==0.7.10" + "version": "==0.7.12" + }, + "atomicwrites": { + "hashes": [ + "sha256:0312ad34fcad8fac3704d441f7b317e50af620823353ec657a53e981f92920c0", + "sha256:ec9ae8adaae229e4f8446952d204a3e4b5fdd2d099f9be3aaf556120135fb3ee" + ], + "version": "==1.2.1" }, "attrs": { "hashes": [ - "sha256:1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9", - "sha256:a17a9573a6f475c99b551c0e0a812707ddda1ec9653bed04c13841404ed6f450" + "sha256:10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69", + "sha256:ca4be454458f9dec299268d472aaa5a11f67a4ff70093396e1ceae9c76cf4bbb" ], - "version": "==17.4.0" + "version": "==18.2.0" }, "babel": { "hashes": [ - "sha256:8ce4cb6fdd4393edd323227cba3a077bceb2a6ce5201c902c65e730046f41f14", - "sha256:ad209a68d7162c4cff4b29cdebe3dec4cef75492df501b0049a9433c96ce6f80" + "sha256:6778d85147d5d85345c14a26aada5e478ab04e39b078b0745ee6870c2b5cf669", + "sha256:8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23" ], - "version": "==2.5.3" + "version": "==2.6.0" }, "bandit": { "hashes": [ - "sha256:cb977045497f83ec3a02616973ab845c829cdab8144ce2e757fe031104a9abd4", - "sha256:de4cc19d6ba32d6f542c6a1ddadb4404571347d83ef1ed1e7afb7d0b38e0c25b" + "sha256:6102b5d6afd9d966df5054e0bdfc2e73a24d0fea400ec25f2e54c134412158d7", + "sha256:9413facfe9de1e1bd291d525c784e1beb1a55c9916b51dae12979af63a69ba4c" ], - "version": "==1.4.0" + "version": "==1.5.1" + }, + "bleach": { + "hashes": [ + "sha256:48d39675b80a75f6d1c3bdbffec791cf0bbbab665cf01e20da701c77de278718", + "sha256:73d26f018af5d5adcdabf5c1c974add4361a9c76af215fe32fdec8a6fc5fb9b9" + ], + "version": "==3.0.2" }, "bumpversion": { "hashes": [ @@ -53,10 +67,10 @@ }, "certifi": { "hashes": [ - "sha256:13e698f54293db9f89122b0581843a782ad0934a4fe0172d2a980ba77fc61bb7", - "sha256:9fa520c1bacfb634fa7af20a76bcbd3d5fb390481724c597da32c719a7dca4b0" + "sha256:339dc09518b07e2fa7eda5450740925974815557727d6bd35d319c1524a04a4c", + "sha256:6d58c986d22b038c8c0df30d639f23a3e6d172a05c3583e766f4c0b785c0986a" ], - "version": "==2018.4.16" + "version": "==2018.10.15" }, "chardet": { "hashes": [ @@ -65,47 +79,42 @@ ], "version": "==3.0.4" }, - "colorama": { - "hashes": [ - "sha256:463f8483208e921368c9f306094eb6f725c6ca42b0f97e313cb5d5512459feda", - "sha256:48eb22f4f8461b1df5734a074b57042430fb06e1d61bd1e11b078c0fe6d7a1f1" - ], - "markers": "sys_platform == 'win32'", - "version": "==0.3.9" - }, "coverage": { "hashes": [ - "sha256:03481e81d558d30d230bc12999e3edffe392d244349a90f4ef9b88425fac74ba", - "sha256:0b136648de27201056c1869a6c0d4e23f464750fd9a9ba9750b8336a244429ed", - "sha256:198626739a79b09fa0a2f06e083ffd12eb55449b5f8bfdbeed1df4910b2ca640", - "sha256:28b2191e7283f4f3568962e373b47ef7f0392993bb6660d079c62bd50fe9d162", - "sha256:2eb564bbf7816a9d68dd3369a510be3327f1c618d2357fa6b1216994c2e3d508", - "sha256:337ded681dd2ef9ca04ef5d93cfc87e52e09db2594c296b4a0a3662cb1b41249", - "sha256:3a2184c6d797a125dca8367878d3b9a178b6fdd05fdc2d35d758c3006a1cd694", - "sha256:3c79a6f7b95751cdebcd9037e4d06f8d5a9b60e4ed0cd231342aa8ad7124882a", - "sha256:3d72c20bd105022d29b14a7d628462ebdc61de2f303322c0212a054352f3b287", - "sha256:3eb42bf89a6be7deb64116dd1cc4b08171734d721e7a7e57ad64cc4ef29ed2f1", - "sha256:4635a184d0bbe537aa185a34193898eee409332a8ccb27eea36f262566585000", - "sha256:56e448f051a201c5ebbaa86a5efd0ca90d327204d8b059ab25ad0f35fbfd79f1", - "sha256:5a13ea7911ff5e1796b6d5e4fbbf6952381a611209b736d48e675c2756f3f74e", - "sha256:69bf008a06b76619d3c3f3b1983f5145c75a305a0fea513aca094cae5c40a8f5", - "sha256:6bc583dc18d5979dc0f6cec26a8603129de0304d5ae1f17e57a12834e7235062", - "sha256:701cd6093d63e6b8ad7009d8a92425428bc4d6e7ab8d75efbb665c806c1d79ba", - "sha256:7608a3dd5d73cb06c531b8925e0ef8d3de31fed2544a7de6c63960a1e73ea4bc", - "sha256:76ecd006d1d8f739430ec50cc872889af1f9c1b6b8f48e29941814b09b0fd3cc", - "sha256:7aa36d2b844a3e4a4b356708d79fd2c260281a7390d678a10b91ca595ddc9e99", - "sha256:7d3f553904b0c5c016d1dad058a7554c7ac4c91a789fca496e7d8347ad040653", - "sha256:7e1fe19bd6dce69d9fd159d8e4a80a8f52101380d5d3a4d374b6d3eae0e5de9c", - "sha256:8c3cb8c35ec4d9506979b4cf90ee9918bc2e49f84189d9bf5c36c0c1119c6558", - "sha256:9d6dd10d49e01571bf6e147d3b505141ffc093a06756c60b053a859cb2128b1f", - "sha256:be6cfcd8053d13f5f5eeb284aa8a814220c3da1b0078fa859011c7fffd86dab9", - "sha256:c1bb572fab8208c400adaf06a8133ac0712179a334c09224fb11393e920abcdd", - "sha256:de4418dadaa1c01d497e539210cb6baa015965526ff5afc078c57ca69160108d", - "sha256:e05cb4d9aad6233d67e0541caa7e511fa4047ed7750ec2510d466e806e0255d6", - "sha256:f3f501f345f24383c0000395b26b726e46758b71393267aeae0bd36f8b3ade80" + "sha256:09e47c529ff77bf042ecfe858fb55c3e3eb97aac2c87f0349ab5a7efd6b3939f", + "sha256:0a1f9b0eb3aa15c990c328535655847b3420231af299386cfe5efc98f9c250fe", + "sha256:0cc941b37b8c2ececfed341444a456912e740ecf515d560de58b9a76562d966d", + "sha256:10e8af18d1315de936d67775d3a814cc81d0747a1a0312d84e27ae5610e313b0", + "sha256:1b4276550b86caa60606bd3572b52769860a81a70754a54acc8ba789ce74d607", + "sha256:1e8a2627c48266c7b813975335cfdea58c706fe36f607c97d9392e61502dc79d", + "sha256:2b224052bfd801beb7478b03e8a66f3f25ea56ea488922e98903914ac9ac930b", + "sha256:447c450a093766744ab53bf1e7063ec82866f27bcb4f4c907da25ad293bba7e3", + "sha256:46101fc20c6f6568561cdd15a54018bb42980954b79aa46da8ae6f008066a30e", + "sha256:4710dc676bb4b779c4361b54eb308bc84d64a2fa3d78e5f7228921eccce5d815", + "sha256:510986f9a280cd05189b42eee2b69fecdf5bf9651d4cd315ea21d24a964a3c36", + "sha256:5535dda5739257effef56e49a1c51c71f1d37a6e5607bb25a5eee507c59580d1", + "sha256:5a7524042014642b39b1fcae85fb37556c200e64ec90824ae9ecf7b667ccfc14", + "sha256:5f55028169ef85e1fa8e4b8b1b91c0b3b0fa3297c4fb22990d46ff01d22c2d6c", + "sha256:6694d5573e7790a0e8d3d177d7a416ca5f5c150742ee703f3c18df76260de794", + "sha256:6831e1ac20ac52634da606b658b0b2712d26984999c9d93f0c6e59fe62ca741b", + "sha256:77f0d9fa5e10d03aa4528436e33423bfa3718b86c646615f04616294c935f840", + "sha256:828ad813c7cdc2e71dcf141912c685bfe4b548c0e6d9540db6418b807c345ddd", + "sha256:85a06c61598b14b015d4df233d249cd5abfa61084ef5b9f64a48e997fd829a82", + "sha256:8cb4febad0f0b26c6f62e1628f2053954ad2c555d67660f28dfb1b0496711952", + "sha256:a5c58664b23b248b16b96253880b2868fb34358911400a7ba39d7f6399935389", + "sha256:aaa0f296e503cda4bc07566f592cd7a28779d433f3a23c48082af425d6d5a78f", + "sha256:ab235d9fe64833f12d1334d29b558aacedfbca2356dfb9691f2d0d38a8a7bfb4", + "sha256:b3b0c8f660fae65eac74fbf003f3103769b90012ae7a460863010539bb7a80da", + "sha256:bab8e6d510d2ea0f1d14f12642e3f35cefa47a9b2e4c7cea1852b52bc9c49647", + "sha256:c45297bbdbc8bb79b02cf41417d63352b70bcb76f1bbb1ee7d47b3e89e42f95d", + "sha256:d19bca47c8a01b92640c614a9147b081a1974f69168ecd494687c827109e8f42", + "sha256:d64b4340a0c488a9e79b66ec9f9d77d02b99b772c8b8afd46c1294c1d39ca478", + "sha256:da969da069a82bbb5300b59161d8d7c8d423bc4ccd3b410a9b4d8932aeefc14b", + "sha256:ed02c7539705696ecb7dc9d476d861f3904a8d2b7e894bd418994920935d36bb", + "sha256:ee5b8abc35b549012e03a7b1e86c09491457dba6c94112a2482b18589cc2bdb9" ], "index": "pypi", - "version": "==4.5.1" + "version": "==4.5.2" }, "docutils": { "hashes": [ @@ -115,13 +124,20 @@ ], "version": "==0.14" }, + "filelock": { + "hashes": [ + "sha256:b8d5ca5ca1c815e1574aee746650ea7301de63d87935b3463d26368b76e31633", + "sha256:d610c1bb404daf85976d7a82eb2ada120f04671007266b708606565dd03b5be6" + ], + "version": "==3.0.10" + }, "flake8": { "hashes": [ - "sha256:7253265f7abd8b313e3892944044a365e3f4ac3fcdcfb4298f55ee9ddf188ba0", - "sha256:c7841163e2b576d435799169b78703ad6ac1bbb0f199994fc05f700b2a90ea37" + "sha256:6a35f5b8761f45c5513e3405f110a86bea57982c3b75b766ce7b65217abe1670", + "sha256:c01f8a3963b3571a8e6bd7a4063359aff90749e160778e03817cd9b71c9e07d2" ], "index": "pypi", - "version": "==3.5.0" + "version": "==3.6.0" }, "flake8-bandit": { "hashes": [ @@ -133,19 +149,19 @@ }, "flake8-bugbear": { "hashes": [ - "sha256:541746f0f3b2f1a8d7278e1d2d218df298996b60b02677708560db7c7e620e3b", - "sha256:5f14a99d458e29cb92be9079c970030e0dd398b2decb179d76d39a5266ea1578" + "sha256:07b6e769d7f4e168d590f7088eae40f6ddd9fa4952bed31602def65842682c83", + "sha256:0ccf56975f4db1d69dc1cf3598c99d768ebf95d0cad27d76087954aa399b515a" ], "index": "pypi", - "version": "==18.2.0" + "version": "==18.8.0" }, "flake8-builtins": { "hashes": [ - "sha256:7a5fbafc6d1f8327973cc45e17dfc2dd0f8c3a26d61c689acf296ad3d5727df8", - "sha256:ede1673c45ff967aea782231ae4836072a58a5f9db7700cf531995c76ba1734b" + "sha256:8d806360767947c0035feada4ddef3ede32f0a586ef457e62d811b8456ad9a51", + "sha256:cd7b1b7fec4905386a3643b59f9ca8e305768da14a49a7efb31fe9364f33cd04" ], "index": "pypi", - "version": "==1.3.0" + "version": "==1.4.1" }, "flake8-comprehensions": { "hashes": [ @@ -157,11 +173,11 @@ }, "flake8-import-order": { "hashes": [ - "sha256:40d2a39ed91e080f3285f4c16256b252d7c31070e7f11b7854415bb9f924ea81", - "sha256:68d430781a9ef15c85a0121500cf8462f1a4bc7672acb2a32bfdbcab044ae0b7" + "sha256:9be5ca10d791d458eaa833dd6890ab2db37be80384707b0f76286ddd13c16cbf", + "sha256:feca2fd0a17611b33b7fa84449939196c2c82764e262486d5c3e143ed77d387b" ], "index": "pypi", - "version": "==0.17.1" + "version": "==0.18" }, "flake8-polyfill": { "hashes": [ @@ -177,41 +193,33 @@ "index": "pypi", "version": "==0.0.8" }, - "funcsigs": { - "hashes": [ - "sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca", - "sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50" - ], - "markers": "python_version < '3.0'", - "version": "==1.0.2" - }, "gitdb2": { "hashes": [ - "sha256:b60e29d4533e5e25bb50b7678bbc187c8f6bcff1344b4f293b2ba55c85795f09", - "sha256:cf9a4b68e8c4da8d42e48728c944ff7af2d8c9db303ac1ab32eac37aa4194b0e" + "sha256:83361131a1836661a155172932a13c08bda2db3674e4caa32368aa6eb02f38c2", + "sha256:e3a0141c5f2a3f635c7209d56c496ebe1ad35da82fe4d3ec4aaa36278d70648a" ], - "version": "==2.0.3" + "version": "==2.0.5" }, "gitpython": { "hashes": [ - "sha256:05069e26177c650b3cb945dd543a7ef7ca449f8db5b73038b465105673c1ef61", - "sha256:c47cc31af6e88979c57a33962cbc30a7c25508d74a1b3a19ec5aa7ed64b03129" + "sha256:563221e5a44369c6b79172f455584c9ebbb122a13368cc82cb4b5addff788f82", + "sha256:8237dc5bfd6f1366abeee5624111b9d6879393d84745a507de0fda86043b65a8" ], - "version": "==2.1.9" + "version": "==2.1.11" }, "idna": { "hashes": [ - "sha256:2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f", - "sha256:8c7309c718f94b3a625cb648ace320157ad16ff131ae0af362c9f21b80ef6ec4" + "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e", + "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16" ], - "version": "==2.6" + "version": "==2.7" }, "imagesize": { "hashes": [ - "sha256:3620cc0cadba3f7475f9940d22431fc4d407269f1be59ec9b8edcca26440cf18", - "sha256:5b326e4678b6925158ccc66a9fa3122b6106d7c876ee32d7de6ce59385b96315" + "sha256:3f349de3eb99145973fefb7dbe38554414e5c30abd0c8e4b970a7c9d09f3a1d8", + "sha256:f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5" ], - "version": "==1.0.0" + "version": "==1.1.0" }, "jinja2": { "hashes": [ @@ -222,9 +230,36 @@ }, "markupsafe": { "hashes": [ - "sha256:a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665" + "sha256:048ef924c1623740e70204aa7143ec592504045ae4429b59c30054cb31e3c432", + "sha256:130f844e7f5bdd8e9f3f42e7102ef1d49b2e6fdf0d7526df3f87281a532d8c8b", + "sha256:19f637c2ac5ae9da8bfd98cef74d64b7e1bb8a63038a3505cd182c3fac5eb4d9", + "sha256:1b8a7a87ad1b92bd887568ce54b23565f3fd7018c4180136e1cf412b405a47af", + "sha256:1c25694ca680b6919de53a4bb3bdd0602beafc63ff001fea2f2fc16ec3a11834", + "sha256:1f19ef5d3908110e1e891deefb5586aae1b49a7440db952454b4e281b41620cd", + "sha256:1fa6058938190ebe8290e5cae6c351e14e7bb44505c4a7624555ce57fbbeba0d", + "sha256:31cbb1359e8c25f9f48e156e59e2eaad51cd5242c05ed18a8de6dbe85184e4b7", + "sha256:3e835d8841ae7863f64e40e19477f7eb398674da6a47f09871673742531e6f4b", + "sha256:4e97332c9ce444b0c2c38dd22ddc61c743eb208d916e4265a2a3b575bdccb1d3", + "sha256:525396ee324ee2da82919f2ee9c9e73b012f23e7640131dd1b53a90206a0f09c", + "sha256:52b07fbc32032c21ad4ab060fec137b76eb804c4b9a1c7c7dc562549306afad2", + "sha256:52ccb45e77a1085ec5461cde794e1aa037df79f473cbc69b974e73940655c8d7", + "sha256:5c3fbebd7de20ce93103cb3183b47671f2885307df4a17a0ad56a1dd51273d36", + "sha256:5e5851969aea17660e55f6a3be00037a25b96a9b44d2083651812c99d53b14d1", + "sha256:5edfa27b2d3eefa2210fb2f5d539fbed81722b49f083b2c6566455eb7422fd7e", + "sha256:7d263e5770efddf465a9e31b78362d84d015cc894ca2c131901a4445eaa61ee1", + "sha256:83381342bfc22b3c8c06f2dd93a505413888694302de25add756254beee8449c", + "sha256:857eebb2c1dc60e4219ec8e98dfa19553dae33608237e107db9c6078b1167856", + "sha256:98e439297f78fca3a6169fd330fbe88d78b3bb72f967ad9961bcac0d7fdd1550", + "sha256:bf54103892a83c64db58125b3f2a43df6d2cb2d28889f14c78519394feb41492", + "sha256:d9ac82be533394d341b41d78aca7ed0e0f4ba5a2231602e2f05aa87f25c51672", + "sha256:e982fe07ede9fada6ff6705af70514a52beb1b2c3d25d4e873e82114cf3c5401", + "sha256:edce2ea7f3dfc981c4ddc97add8a61381d9642dc3273737e756517cc03e84dd6", + "sha256:efdc45ef1afc238db84cb4963aa689c0408912a0239b0721cb172b4016eb31d6", + "sha256:f137c02498f8b935892d5c0172560d7ab54bc45039de8805075e19079c639a9c", + "sha256:f82e347a72f955b7017a39708a3667f106e6ad4d10b25f237396a7115d8ed5fd", + "sha256:fb7c206e01ad85ce57feeaaa0bf784b97fa3cad0d4a5737bc5295785f5c613a1" ], - "version": "==1.0" + "version": "==1.1.0" }, "mccabe": { "hashes": [ @@ -235,33 +270,41 @@ }, "more-itertools": { "hashes": [ - "sha256:0dd8f72eeab0d2c3bd489025bb2f6a1b8342f9b198f6fc37b52d15cfa4531fea", - "sha256:11a625025954c20145b37ff6309cd54e39ca94f72f6bb9576d1195db6fa2442e", - "sha256:c9ce7eccdcb901a2c75d326ea134e0886abfbea5f93e91cc95de9507c0816c44" + "sha256:c187a73da93e7a8acc0001572aebc7e3c69daf7bf6881a2cea10650bd4420092", + "sha256:c476b5d3a34e12d40130bc2f935028b5f636df8f372dc2c1c01dc19681b2039e", + "sha256:fcbfeaea0be121980e15bc97b3817b5202ca73d0eae185b4550cbfce2a3ebb3d" ], - "version": "==4.1.0" + "version": "==4.3.0" }, "packaging": { "hashes": [ - "sha256:e9215d2d2535d3ae866c3d6efc77d5b24a0192cce0ff20e42896cc0664f889c0", - "sha256:f019b770dd64e585a99714f1fd5e01c7a8f11b45635aa953fd41c689a657375b" + "sha256:0886227f54515e592aaa2e5a553332c73962917f2831f1b0f9b9f4380a4b9807", + "sha256:f95a1e147590f204328170981833854229bb2912ac3d5f89e2a8ccd2834800c9" + ], + "version": "==18.0" + }, + "pathlib2": { + "hashes": [ + "sha256:8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83", + "sha256:d1aa2a11ba7b8f7b21ab852b1fb5afb277e1bb99d5dfc663380b5015c0d80c5a" ], - "version": "==17.1" + "index": "pypi", + "version": "==2.3.2" }, "pbr": { "hashes": [ - "sha256:4e8a0ed6a8705a26768f4c3da26026013b157821fe5f95881599556ea9d91c19", - "sha256:dae4aaa78eafcad10ce2581fc34d694faa616727837fd8e55c1a00951ad6744f" + "sha256:f59d71442f9ece3dffc17bc36575768e1ee9967756e6b6535f0ee1f0054c3d68", + "sha256:f6d5b23f226a2ba58e14e49aa3b1bfaf814d0199144b95d78458212444de1387" ], - "version": "==4.0.2" + "version": "==5.1.1" }, "pep8-naming": { "hashes": [ - "sha256:0b82da414024f290e0e7aad80d9a7614d6a85bedd82304deeb2e4e0a74f8968b", - "sha256:5a2a085340b1d530605a7f4a96816433be43504c58eace799dbacdcfd6febe9d" + "sha256:360308d2c5d2fff8031c1b284820fbdb27a63274c0c1a8ce884d631836da4bdd", + "sha256:624258e0dd06ef32a9daf3c36cc925ff7314da7233209c5b01f7e5cdd3c34826" ], "index": "pypi", - "version": "==0.5.0" + "version": "==0.7.0" }, "pkginfo": { "hashes": [ @@ -272,33 +315,31 @@ }, "pluggy": { "hashes": [ - "sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff", - "sha256:d345c8fe681115900d6da8d048ba67c25df42973bda370783cd58826442dcd7c", - "sha256:e160a7fcf25762bb60efc7e171d4497ff1d8d2d75a3d0df7a21b76821ecbf5c5" + "sha256:447ba94990e8014ee25ec853339faf7b0fc8050cdc3289d4d71f7f410fb90095", + "sha256:bde19360a8ec4dfd8a20dcb811780a30998101f078fc7ded6162f0076f50508f" ], - "version": "==0.6.0" + "version": "==0.8.0" }, "py": { "hashes": [ - "sha256:29c9fab495d7528e80ba1e343b958684f4ace687327e6f789a94bf3d1915f881", - "sha256:983f77f3331356039fdd792e9220b7b8ee1aa6bd2b25f567a963ff1de5a64f6a" + "sha256:bf92637198836372b520efcba9e020c330123be8ce527e535d185ed4b6f45694", + "sha256:e76826342cefe3c3d5f7e8ee4316b80d1dd8a300781612ddbc765c17ba25a6c6" ], - "version": "==1.5.3" + "version": "==1.7.0" }, "pycodestyle": { "hashes": [ - "sha256:1ec08a51c901dfe44921576ed6e4c1f5b7ecbad403f871397feedb5eb8e4fa14", - "sha256:682256a5b318149ca0d2a9185d365d8864a768a28db66a84a2ea946bcc426766", - "sha256:6c4245ade1edfad79c3446fadfc96b0de2759662dc29d07d80a6f27ad1ca6ba9" + "sha256:cbc619d09254895b0d12c2c691e237b2e91e9b2ecf5e84c26b35400f93dcfb83", + "sha256:cbfca99bd594a10f674d0cd97a3d802a1fdef635d4361e1a2658de47ed261e3a" ], - "version": "==2.3.1" + "version": "==2.4.0" }, "pyflakes": { "hashes": [ - "sha256:08bd6a50edf8cffa9fa09a463063c425ecaaf10d1eb0335a7e8b1401aef89e6f", - "sha256:8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805" + "sha256:9a7662ec724d0120012f6e29d6248ae3727d821bba522a0e6b356eff19126a49", + "sha256:f661252913bc1dbe7fcfcbf0af0db3f42ab65aabd1a6ca68fe5d466bace94dae" ], - "version": "==1.6.0" + "version": "==2.0.0" }, "pygments": { "hashes": [ @@ -309,45 +350,55 @@ }, "pyparsing": { "hashes": [ - "sha256:0832bcf47acd283788593e7a0f542407bd9550a55a8a8435214a1960e04bcb04", - "sha256:fee43f17a9c4087e7ed1605bd6df994c6173c1e977d7ade7b651292fab2bd010" + "sha256:40856e74d4987de5d01761a22d1621ae1c7f8774585acae358aa5c5936c6c90b", + "sha256:f353aab21fd474459d97b709e527b5571314ee5f067441dc9f88e33eecd96592" ], - "version": "==2.2.0" + "version": "==2.3.0" }, "pytest": { "hashes": [ - "sha256:6266f87ab64692112e5477eba395cfedda53b1933ccd29478e671e73b420c19c", - "sha256:fae491d1874f199537fd5872b5e1f0e74a009b979df9d53d1553fd03da1703e1" + "sha256:488c842647bbeb350029da10325cb40af0a9c7a2fdda45aeb1dda75b60048ffb", + "sha256:c055690dfefa744992f563e8c3a654089a6aa5b8092dded9b6fafbd70b2e45a7" ], "index": "pypi", - "version": "==3.5.0" + "version": "==4.0.0" }, "pytz": { "hashes": [ - "sha256:65ae0c8101309c45772196b21b74c46b2e5d11b6275c45d251b150d5da334555", - "sha256:c06425302f2cf668f1bba7a0a03f3c1d34d4ebeef2c72003da308b3947c7f749" + "sha256:31cb35c89bd7d333cd32c5f278fca91b523b0834369e757f4c5641ea252236ca", + "sha256:8e0f8568c118d3077b46be7d654cc8167fa916092e28320cde048e54bfc9f1e6" ], - "version": "==2018.4" + "version": "==2018.7" }, "pyyaml": { "hashes": [ - "sha256:16b20e970597e051997d90dc2cddc713a2876c47e3d92d59ee198700c5427736", - "sha256:3262c96a1ca437e7e4763e2843746588a965426550f3797a79fca9c6199c431f", - "sha256:592766c6303207a20efc445587778322d7f73b161bd994f227adaa341ba212ab", - "sha256:5ac82e411044fb129bae5cfbeb3ba626acb2af31a8d17d175004b70862a741a7", - "sha256:827dc04b8fa7d07c44de11fabbc888e627fa8293b695e0f99cb544fdfa1bf0d1", - "sha256:bc6bced57f826ca7cb5125a10b23fd0f2fff3b7c4701d64c439a300ce665fff8", - "sha256:c01b880ec30b5a6e6aa67b09a2fe3fb30473008c85cd6a67359a1b15ed6d83a4", - "sha256:e863072cdf4c72eebf179342c94e6989c67185842d9997960b3e69290b2fa269" + "sha256:3d7da3009c0f3e783b2c873687652d83b1bbfd5c88e9813fb7e5b03c0dd3108b", + "sha256:3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf", + "sha256:40c71b8e076d0550b2e6380bada1f1cd1017b882f7e16f09a65be98e017f211a", + "sha256:558dd60b890ba8fd982e05941927a3911dc409a63dcb8b634feaa0cda69330d3", + "sha256:a7c28b45d9f99102fa092bb213aa12e0aaf9a6a1f5e395d36166639c1f96c3a1", + "sha256:aa7dd4a6a427aed7df6fb7f08a580d68d9b118d90310374716ae90b710280af1", + "sha256:bc558586e6045763782014934bfaf39d48b8ae85a2713117d16c39864085c613", + "sha256:d46d7982b62e0729ad0175a9bc7e10a566fc07b224d2c79fafb5e032727eaa04", + "sha256:d5eef459e30b09f5a098b9cea68bebfeb268697f78d647bd255a085371ac7f3f", + "sha256:e01d3203230e1786cd91ccfdc8f8454c8069c91bee3962ad93b87a4b2860f537", + "sha256:e170a9e6fcfd19021dd29845af83bb79236068bf5fd4df3327c1be18182b2531" + ], + "version": "==3.13" + }, + "readme-renderer": { + "hashes": [ + "sha256:bb16f55b259f27f75f640acf5e00cf897845a8b3e4731b5c1a436e4b8529202f", + "sha256:c8532b79afc0375a85f10433eca157d6b50f7d6990f337fa498c96cd4bfc203d" ], - "version": "==3.12" + "version": "==24.0" }, "requests": { "hashes": [ - "sha256:6a1b267aa90cac58ac3a765d067950e7dbbf75b1da07e895d1f594193a40a38b", - "sha256:9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e" + "sha256:65b3a120e4329e33c9889db89c80976c5272f56ea92d3e74da8a463992e3ff54", + "sha256:ea881206e59f41dbd0bd445437d792e43906703fff75ca8ff43ccdb11f33f263" ], - "version": "==2.18.4" + "version": "==2.20.1" }, "requests-toolbelt": { "hashes": [ @@ -358,18 +409,17 @@ }, "restructuredtext-lint": { "hashes": [ - "sha256:c48ca9a84c312b262809f041fe47dcfaedc9ee4879b3e1f9532f745c182b4037" + "sha256:8712f9066d2c748002ec24f6f7ddca13e0c37654ae4f1ba0dcf0e78ba453c387" ], - "version": "==1.1.3" + "version": "==1.2.1" }, "setuptools-scm": { "hashes": [ - "sha256:3d9b39d29d1d6a173df7b056d5ce52937e1dc59069e664cb7918cc49ac50d517", - "sha256:638627655ec4625b7a055a5b65f44e88121fce05a281a1597abd6a9f8c04139b", - "sha256:768e5772ebbb54c525d720ccac62610b7cb6d0b52f0b6a703094ca90770cccc6" + "sha256:1191f2a136b5e86f7ca8ab00a97ef7aef997131f1f6d4971be69a1ef387d8b40", + "sha256:cc6953d224a22f10e933fa2f55c95979317c55259016adcf93310ba2997febfa" ], "index": "pypi", - "version": "==2.0.0" + "version": "==3.1.0" }, "six": { "hashes": [ @@ -380,10 +430,10 @@ }, "smmap2": { "hashes": [ - "sha256:b78ee0f1f5772d69ff50b1cbdb01b8c6647a8354f02f23b488cf4b2cfc923956", - "sha256:c7530db63f15f09f8251094b22091298e82bf6c699a6b8344aaaef3f2e1276c3" + "sha256:0555a7bf4df71d1ef4218e4807bbf9b201f910174e6e08af2e138d4e517b4dde", + "sha256:29a9ffa0497e7f2be94ca0ed1ca1aa3cd4cf25a1f6b4f5f87f74b46ed91d609a" ], - "version": "==2.0.3" + "version": "==2.0.5" }, "snowballstemmer": { "hashes": [ @@ -394,41 +444,48 @@ }, "sphinx": { "hashes": [ - "sha256:3aded1a355f662547b8a948131f3faecbc3dea8951847fe0ee4c59689f8220b2", - "sha256:9495a1f78c13d0a725ab8104e923e9663519ecc04552aa4a8f684c2da355443d" + "sha256:120732cbddb1b2364471c3d9f8bfd4b0c5b550862f99a65736c77f970b142aea", + "sha256:b348790776490894e0424101af9c8413f2a86831524bd55c5f379d3e3e12ca64" ], "index": "pypi", - "version": "==1.7.3" + "version": "==1.8.2" }, "sphinx-rtd-theme": { "hashes": [ - "sha256:220dbf14814001c6475f0c6c25ac4129a18fb5e3681251a7c6ffb1646da5cc30", - "sha256:665135dfbdf8f1d218442458a18cf266444354b8c98eed93d1543f7e701cfdba" + "sha256:02f02a676d6baabb758a20c7a479d58648e0f64f13e07d1b388e9bb2afe86a09", + "sha256:d0f6bc70f98961145c5b0e26a992829363a197321ba571b31b24ea91879e0c96" ], "index": "pypi", - "version": "==0.3.0" + "version": "==0.4.2" }, "sphinxcontrib-websupport": { "hashes": [ - "sha256:7a85961326aa3a400cd4ad3c816d70ed6f7c740acd7ce5d78cd0a67825072eb9", - "sha256:f4932e95869599b89bf4f80fc3989132d83c9faa5bf633e7b5e0c25dffb75da2" + "sha256:68ca7ff70785cbe1e7bccc71a48b5b6d965d79ca50629606c7861a21b206d9dd", + "sha256:9de47f375baf1ea07cdb3436ff39d7a9c76042c10a769c52353ec46e4e8fc3b9" ], - "version": "==1.0.1" + "version": "==1.1.0" }, "stevedore": { "hashes": [ - "sha256:e3d96b2c4e882ec0c1ff95eaebf7b575a779fd0ccb4c741b9832bed410d58b3d", - "sha256:f1c7518e7b160336040fee272174f1f7b29a46febb3632502a8f2055f973d60b" + "sha256:b92bc7add1a53fb76c634a178978d113330aaf2006f9498d9e2414b31fbfc104", + "sha256:c58b7c231a9c4890cd3c2b5d2b23bd63fa807ff934d68579e3f6c3a1735e8a7c" + ], + "version": "==1.30.0" + }, + "toml": { + "hashes": [ + "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c", + "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e" ], - "version": "==1.28.0" + "version": "==0.10.0" }, "tox": { "hashes": [ - "sha256:96efa09710a3daeeb845561ebbe1497641d9cef2ee0aea30db6969058b2bda2f", - "sha256:9ee7de958a43806402a38c0d2aa07fa8553f4d2c20a15b140e9f771c2afeade0" + "sha256:513e32fdf2f9e2d583c2f248f47ba9886428c949f068ac54a0469cac55df5862", + "sha256:75fa30e8329b41b664585f5fb837e23ce1d7e6fa1f7811f2be571c990f9d911b" ], "index": "pypi", - "version": "==3.0.0" + "version": "==3.5.3" }, "tox-pyenv": { "hashes": [ @@ -440,32 +497,39 @@ }, "tqdm": { "hashes": [ - "sha256:597e7526c85df881d51e094360181a84533aede1cb3f5a1cada8bbd4de557efd", - "sha256:fe3d218d5b61993d415aa2a9db6dd64c0e4cefb90164ebb197ef3b1d99f531dc" + "sha256:3c4d4a5a41ef162dd61f1edb86b0e1c7859054ab656b2e7c7b77e7fbf6d9f392", + "sha256:5b4d5549984503050883bc126280b386f5f4ca87e6c023c5d015655ad75bdebb" ], - "version": "==4.23.0" + "version": "==4.28.1" }, "twine": { "hashes": [ - "sha256:08eb132bbaec40c6d25b358f546ec1dc96ebd2638a86eea68769d9e67fe2b129", - "sha256:2fd9a4d9ff0bcacf41fdc40c8cb0cfaef1f1859457c9653fd1b92237cc4e9f25" + "sha256:7d89bc6acafb31d124e6e5b295ef26ac77030bf098960c2a4c4e058335827c5c", + "sha256:fad6f1251195f7ddd1460cb76d6ea106c93adb4e56c41e0da79658e56e547d2c" ], "index": "pypi", - "version": "==1.11.0" + "version": "==1.12.1" }, "urllib3": { "hashes": [ - "sha256:06330f386d6e4b195fbfc736b297f58c5a892e4440e54d294d7004e3a9bbea1b", - "sha256:cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f" + "sha256:61bf29cada3fc2fbefad4fdf059ea4bd1b4a86d2b6d15e1c7c0b582b9752fe39", + "sha256:de9529817c93f27c8ccbfead6985011db27bd0ddfcdb2d86f3f663385c6a9c22" ], - "version": "==1.22" + "version": "==1.24.1" }, "virtualenv": { "hashes": [ - "sha256:1d7e241b431e7afce47e77f8843a276f652699d1fa4f93b9d8ce0076fd7b0b54", - "sha256:e8e05d4714a1c51a2f5921e62f547fcb0f713ebbe959e0a7f585cc8bef71d11f" + "sha256:686176c23a538ecc56d27ed9d5217abd34644823d6391cbeb232f42bf722baad", + "sha256:f899fafcd92e1150f40c8215328be38ff24b519cd95357fa6e78e006c7638208" + ], + "version": "==16.1.0" + }, + "webencodings": { + "hashes": [ + "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", + "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" ], - "version": "==15.2.0" + "version": "==0.5.1" } } } diff --git a/README.rst b/README.rst index cea084f..411cfbb 100644 --- a/README.rst +++ b/README.rst @@ -53,7 +53,7 @@ Installation .. code:: bash - pipenv install dotty-dict # or pip install dotty-dict + pip install dotty-dict * **Package**: https://pypi.org/project/dotty-dict/ @@ -107,3 +107,26 @@ You can start with empty dotty >>> dot.get('very.not_existing.key') None + + +Install for development +======================= + +Install dev dependencies + +```console +$ make install +``` + +Testing +======= + +```console +$ make test +``` + +Or full tests with TOX: + +```console +$ make test-all +``` diff --git a/example/advanced.py b/example/advanced.py index dc5129c..36d90e0 100644 --- a/example/advanced.py +++ b/example/advanced.py @@ -70,7 +70,7 @@ def escape_character(): }) # how to access deeper value? - assert dot['key\.with\.dot.deeper'] == 'other value' + assert dot[r'key\.with\.dot.deeper'] == 'other value' # end of escape_character @@ -87,5 +87,5 @@ def escape_the_escape_character(): }) # escape first dot and escape the escape character before second dot - assert dot['key\.with_backslash\\\.deeper'] == 'other value' + assert dot[r'key\.with_backslash\\.deeper'] == 'other value' # end of escape_the_escape_character diff --git a/setup.cfg b/setup.cfg index f722b08..53bc964 100644 --- a/setup.cfg +++ b/setup.cfg @@ -13,7 +13,7 @@ max-complexity = 8 statistics = true ignore = B101,E501 select = B,B902,B950,C,E,F,G,H,I,N,RST,W -exclude = +exclude = .cache .circleci .git @@ -33,4 +33,3 @@ exclude = [tool:pytest] addopts = --verbose python_files = tests/*.py - diff --git a/setup.py b/setup.py index 2cba776..e72202e 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,6 @@ __author__ = 'Paweł Zadrożny' __copyright__ = 'Copyright (c) 2018, Pawelzny' -__requires__ = ['pipenv'] with open('README.rst', 'r') as readme_file: readme = readme_file.read() @@ -36,14 +35,6 @@ def run(self): develop.run(self) -class PostInstallCommand(install): - """Post-installation for installation mode.""" - - def run(self): - subprocess.check_call(['pipenv', 'install', '--deploy', '--system']) - install.run(self) - - class TestCommand(test): """Run tests""" @@ -77,13 +68,13 @@ def run(self): 'Programming Language :: Python :: 3 :: Only', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'License :: OSI Approved :: MIT License', ], cmdclass={ 'develop': PostDevelopCommand, - 'install': PostInstallCommand, 'test': TestCommand, }, ) diff --git a/tests/test_dotty_value_access.py b/tests/test_dotty_value_access.py index 500df4d..175e603 100644 --- a/tests/test_dotty_value_access.py +++ b/tests/test_dotty_value_access.py @@ -118,7 +118,7 @@ def test_raise_key_error_on_delete_not_existing_key(self): del self.dot['deep.deeper.key'] def test_set_value_with_escaped_separator(self): - self.dot['deep.deeper.escaped\.dot_key'] = 'it works!' + self.dot[r'deep.deeper.escaped\.dot_key'] = 'it works!' self.assertDictEqual(self.dot._data, { 'flat_key': 'flat value', 'deep': { @@ -147,7 +147,7 @@ def test_get_value_with_escaped_separator(self): }, }, }) - result = dot['deep.deeper.escaped\.dot_key'] + result = dot[r'deep.deeper.escaped\.dot_key'] self.assertEqual(result, 'it works!') def test_get_value_with_escaped_escape_separator(self): @@ -166,7 +166,7 @@ def test_get_value_with_escaped_escape_separator(self): }, }, }) - result = dot['deep.deeper.escaped\\\\.dot_key'] + result = dot[r'deep.deeper.escaped\\.dot_key'] self.assertEqual(result, 'it works!') def test_use_custom_separator_and_custom_escape_char(self): @@ -175,7 +175,7 @@ def test_use_custom_separator_and_custom_escape_char(self): dot = Dotty({}, separator=sep, esc_char=esc) dot['abcd,efg,hij'] = 'test' dot['abcd,efg$,hij'] = 'test2' - dot['abcd,efg\$,hij'] = 'test3' + dot[r'abcd,efg\$,hij'] = 'test3' self.assertDictEqual(dot._data, { 'abcd': { 'efg': { diff --git a/tox.ini b/tox.ini index 45dbe69..1b0c1d7 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py35,py36,pypy35,flake8,docs +envlist = py35,py36,py37,pypy35,flake8,docs [testenv:flake8] basepython = python3.6 @@ -28,6 +28,9 @@ basepython = python3.5 [testenv:py36] basepython = python3.6 +[testenv:py37] +basepython = python3.7 + [testenv:pypy35] basepython = pypy3 commands =