From f055be4ac0c501d63e37cd4f200e6584a84ace23 Mon Sep 17 00:00:00 2001 From: "Fafner [_KeyZee_]" Date: Mon, 30 Oct 2023 12:17:21 +0000 Subject: [PATCH 1/2] Migrating to poetry --- REQUIREMENTS | 2 - _config.yml | 1 - mmdb_server/__init__.py | 0 bin/server.py => mmdb_server/mmdb_server.py | 9 +++- poetry.lock | 57 +++++++++++++++++++++ pyproject.toml | 19 +++++++ 6 files changed, 83 insertions(+), 5 deletions(-) delete mode 100644 REQUIREMENTS delete mode 100644 _config.yml create mode 100644 mmdb_server/__init__.py rename bin/server.py => mmdb_server/mmdb_server.py (98%) create mode 100644 poetry.lock create mode 100644 pyproject.toml diff --git a/REQUIREMENTS b/REQUIREMENTS deleted file mode 100644 index f4f0886..0000000 --- a/REQUIREMENTS +++ /dev/null @@ -1,2 +0,0 @@ -falcon -maxminddb diff --git a/_config.yml b/_config.yml deleted file mode 100644 index c419263..0000000 --- a/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-cayman \ No newline at end of file diff --git a/mmdb_server/__init__.py b/mmdb_server/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/bin/server.py b/mmdb_server/mmdb_server.py similarity index 98% rename from bin/server.py rename to mmdb_server/mmdb_server.py index ad17b9b..ce35181 100644 --- a/bin/server.py +++ b/mmdb_server/mmdb_server.py @@ -17,7 +17,7 @@ import maxminddb version = "0.5" config = configparser.ConfigParser() -config.read('../etc/server.conf') +config.read('etc/server.conf') mmdb_file = config['global'].get('mmdb_file') pubsub = config['global'].getboolean('lookup_pubsub') port = config['global'].getint('port') @@ -121,7 +121,12 @@ app = falcon.App() app.add_route('/geolookup/{value}', GeoLookup()) app.add_route('/', MyGeoLookup()) -if __name__ == '__main__': +def main(): with make_server('', port, app) as httpd: print(f'Serving on port {port}...') httpd.serve_forever() + + +if __name__ == '__main__': + main() + diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..3cc80f5 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,57 @@ +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. + +[[package]] +name = "falcon" +version = "3.1.1" +description = "The ultra-reliable, fast ASGI+WSGI framework for building data plane APIs at scale." +optional = false +python-versions = ">=3.5" +files = [ + {file = "falcon-3.1.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:10ff3080aebe84fb45955cb02375ce13b6a3556c73edad282325eb67aeb42a46"}, + {file = "falcon-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca798f3240283a89881209dfa8eb20e2eaf8d01c50b33be5f70865c0902577ec"}, + {file = "falcon-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:394e16249d9b61dcdbb6653311c4a208f9fc68b696d0123d29f781fbd338cfd4"}, + {file = "falcon-3.1.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6245344fab1a7faeb9267c75b8f4fd6c4bda35e1a2fe8f547b832b547c7f2128"}, + {file = "falcon-3.1.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fc0ef213d6e66bb997d172ceaa04f6daa309cac47e2fcd4320234806c806467"}, + {file = "falcon-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:016fe952a526045292fb591f4c724d5fdf4127e88d0369e2dc147925dc51835c"}, + {file = "falcon-3.1.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:00e6c6b3ec846193cfd30be26b10dbb7cc31ee3442f80f1d5ffd14c410619156"}, + {file = "falcon-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a7e6e1e6af16d1055454eaed5ceaceabca97656b28a8a924b426fbf0e26ec0f0"}, + {file = "falcon-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d53dabcf8212c38137e40a61795e312224dc7a437b03d7fb0a1b0dc3ed8d4b5b"}, + {file = "falcon-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:762854cc9f13082166c166c93fd6f2178ba1787170bacee9a4b37fab412f602e"}, + {file = "falcon-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:686a0167af40565a2057f3902a9fb8f15a423ad17a80c9caee932b668478c9ad"}, + {file = "falcon-3.1.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:b8302953d72405750450d4f8b7651dc6c5a5199dbb104b598036818f917b1d8c"}, + {file = "falcon-3.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f187040b6632ed434c3f6bcedb98fb6559973123d1799e77718502d2b693701e"}, + {file = "falcon-3.1.1-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:1b8dfce6c379ba14d962abf479137258c694017752bc5b585ab366e2e8106a3e"}, + {file = "falcon-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d9c3dc6c5a8a2f2c3f1fd433a6b4e4bcef22c52166b91e2d6d985fbcadcc62b"}, + {file = "falcon-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2abecd50121ed969fa34d5c035a340ee4b21afc84dcd354acd548ab2edcc67b2"}, + {file = "falcon-3.1.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f6e3c42f3c20af33c040affe0a3e8cd358153304b48eb441adfd261c3bfd51d3"}, + {file = "falcon-3.1.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7aab2dd6683437d8739a0cc9d6ab6542f48e05445a0138b356f63983a7c98fe"}, + {file = "falcon-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6fbc130a12e35ca76d782201af7a558ac57d4e5e66ba3a8017f5a3baaed64f8b"}, + {file = "falcon-3.1.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:550566250ac2bc0418075f2ad177b7e01adef1815459c2d962e579dff07162fb"}, + {file = "falcon-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cf50b9a2dcf9c8f6ae8de94e2e6ac082449380784fb9d1a1fc80fade052aead"}, + {file = "falcon-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8a5fa02feaf67a2bd0407201dfec92edb0eee59803c3e1e717cfa5a2232ffc77"}, + {file = "falcon-3.1.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ff2eaf9807ea357ced1cc60e1d2871f55aa6ea29162386efb95fb4e5a730e6de"}, + {file = "falcon-3.1.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f049eeeeea08e0a5fbb87d1fe131f85c7a0310c3a0a4226146463709fbfe12eb"}, + {file = "falcon-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:66d937b7b796b68640d63e006e475d9268f68dfb3f1468415259507db72ee065"}, + {file = "falcon-3.1.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:13121ab6a86597ec849e397272662f5cafcbe534e12c01e2913035fe4120dcd1"}, + {file = "falcon-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5af63f2d7f509353552b2436501449065f30f27542d1e58c864656bd3a7a9ef1"}, + {file = "falcon-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd1eaf1a5d9d936f29f9aca3f268cf375621d1ffcbf27a6e14c187b489bf5f26"}, + {file = "falcon-3.1.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bec014dc19a38d5a525ab948a8eccc885f28d2611bdf3f73842fadc44b185702"}, + {file = "falcon-3.1.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271fa0c4b0634e4e238dc7c2fcd57be5f9dd0f200553e46677ff704f6a8090e6"}, + {file = "falcon-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:7a7ecb8eafada89389c19eda44811e14786599c1d86c6cffa58c65150b24bc43"}, + {file = "falcon-3.1.1.tar.gz", hash = "sha256:5dd393dbf01cbaf99493893de4832121bd495dc49a46c571915b79c59aad7ef4"}, +] + +[[package]] +name = "maxminddb" +version = "2.4.0" +description = "Reader for the MaxMind DB format" +optional = false +python-versions = ">=3.7" +files = [ + {file = "maxminddb-2.4.0.tar.gz", hash = "sha256:81e54e53408bd502650e5969ccba16780af659ec1db1c44b2c997e4330a5ed96"}, +] + +[metadata] +lock-version = "2.0" +python-versions = "^3.10" +content-hash = "fad5c71f6eca9d52d2b78f9e5d3b58632a52a41500ef9ae21babc3cb3cbe69ca" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..09ceaee --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,19 @@ +[tool.poetry] +name = "mmdb-server" +version = "0.5.0" +description = "" +authors = ["Alexandre Dulaunoy"] +readme = "README.md" + +[tool.poetry.scripts] +serve = "mmdb_server.mmdb_server:main" + +[tool.poetry.dependencies] +python = "^3.10" +falcon = "^3.1.1" +maxminddb = "^2.4.0" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" From 696f3c6588556e731b69af11a3c11a7c34495f4c Mon Sep 17 00:00:00 2001 From: "Fafner [_KeyZee_]" Date: Mon, 30 Oct 2023 13:21:48 +0100 Subject: [PATCH 2/2] Update README.md Update README to work with poetry \o/ --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1819b1e..8eaf300 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,14 @@ mmdb-server includes a free and open [GeoOpen-Country database](https://data.pub # Installation -Python 3.8+ is required to run the mmdb-server with some [additional requirements](./REQUIREMENTS). +Python 3.10+ is required to run the mmdb-server with poetry. -- `pip3 install -r REQUIREMENTS` +- `curl -sSL https://install.python-poetry.org | python3 -` +- Log out and Log in again +- `poetry install` - `cp ./etc/server.conf.sample ./etc/server.conf` - `cd ./db; bash update.sh; cd ..` (to get the latest version of the GeoOpen database) -- `cd bin; python3 server.py` +- `poetry run serve` # Usage