chg: Improve archiver

pull/764/head
Raphaël Vinot 2023-08-20 16:21:33 +02:00
parent d0d08b5882
commit 2ec34e2b9b
3 changed files with 84 additions and 68 deletions

View File

@ -190,16 +190,27 @@ class Archiver(AbstractManager):
for month, captures in month_captures.items():
dest_dir = self.archived_captures_dir / str(year) / f'{month:02}'
dest_dir.mkdir(parents=True, exist_ok=True)
capture_breakpoint = 1000
for capture_path in captures:
capture_breakpoint -= 1
if capture_breakpoint <= 0:
# Break and restart later
self.logger.info('Archived many captures in {year}-{month}, will keep going later.')
break
elif capture_breakpoint % 100:
# Just check if we requested a shutdown.
if self.shutdown_requested():
self.logger.warning('Shutdown requested, breaking.')
break
p.delete(str(capture_path))
(capture_path / 'tree.pickle').unlink(missing_ok=True)
(capture_path / 'tree.pickle.gz').unlink(missing_ok=True)
# If the HAR isn't archived yet, archive it before copy
for har in capture_path.glob('*.har'):
with har.open('rb') as f_in:
with gzip.open(f'{har}.gz', 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
har.unlink()
(capture_path / 'tree.pickle').unlink(missing_ok=True)
(capture_path / 'tree.pickle.gz').unlink(missing_ok=True)
shutil.move(str(capture_path), str(dest_dir))
p.execute()

119
poetry.lock generated
View File

@ -461,13 +461,13 @@ files = [
[[package]]
name = "click"
version = "8.1.6"
version = "8.1.7"
description = "Composable command line interface toolkit"
optional = false
python-versions = ">=3.7"
files = [
{file = "click-8.1.6-py3-none-any.whl", hash = "sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5"},
{file = "click-8.1.6.tar.gz", hash = "sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd"},
{file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
{file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
]
[package.dependencies]
@ -1243,13 +1243,13 @@ referencing = ">=0.28.0"
[[package]]
name = "lacuscore"
version = "1.6.7"
version = "1.6.8"
description = "Core of Lacus, usable as a module"
optional = false
python-versions = ">=3.8,<4.0"
files = [
{file = "lacuscore-1.6.7-py3-none-any.whl", hash = "sha256:1024dc67b7cb1835946fc199f14b25d704f8b43e36947fa7cb9bd4519df1ad04"},
{file = "lacuscore-1.6.7.tar.gz", hash = "sha256:050f07be3d9a304c68033daaf2bb975304381b2f055846d84e1f0016789c309a"},
{file = "lacuscore-1.6.8-py3-none-any.whl", hash = "sha256:424aef2c7f57ef45c845719c5c0c4b715106aadbf93b14fd7c8c72208c055ebe"},
{file = "lacuscore-1.6.8.tar.gz", hash = "sha256:c3b7cefbaa576fdce67b41de6d005ad0196b58bec551ebe3899f23bf6ff378e1"},
]
[package.dependencies]
@ -1583,33 +1583,38 @@ files = [
[[package]]
name = "mypy"
version = "1.5.0"
version = "1.5.1"
description = "Optional static typing for Python"
optional = false
python-versions = ">=3.8"
files = [
{file = "mypy-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ad3109bec37cc33654de8db30fe8ff3a1bb57ea65144167d68185e6dced9868d"},
{file = "mypy-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b4ea3a0241cb005b0ccdbd318fb99619b21ae51bcf1660b95fc22e0e7d3ba4a1"},
{file = "mypy-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fe816e26e676c1311b9e04fd576543b873576d39439f7c24c8e5c7728391ecf"},
{file = "mypy-1.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:42170e68adb1603ccdc55a30068f72bcfcde2ce650188e4c1b2a93018b826735"},
{file = "mypy-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:d145b81a8214687cfc1f85c03663a5bbe736777410e5580e54d526e7e904f564"},
{file = "mypy-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c36011320e452eb30bec38b9fd3ba20569dc9545d7d4540d967f3ea1fab9c374"},
{file = "mypy-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f3940cf5845b2512b3ab95463198b0cdf87975dfd17fdcc6ce9709a9abe09e69"},
{file = "mypy-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9166186c498170e1ff478a7f540846b2169243feb95bc228d39a67a1a450cdc6"},
{file = "mypy-1.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:725b57a19b7408ef66a0fd9db59b5d3e528922250fb56e50bded27fea9ff28f0"},
{file = "mypy-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:eec5c927aa4b3e8b4781840f1550079969926d0a22ce38075f6cfcf4b13e3eb4"},
{file = "mypy-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:79c520aa24f21852206b5ff2cf746dc13020113aa73fa55af504635a96e62718"},
{file = "mypy-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:769ddb6bfe55c2bd9c7d6d7020885a5ea14289619db7ee650e06b1ef0852c6f4"},
{file = "mypy-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbf18f8db7e5f060d61c91e334d3b96d6bb624ddc9ee8a1cde407b737acbca2c"},
{file = "mypy-1.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a2500ad063413bc873ae102cf655bf49889e0763b260a3a7cf544a0cbbf7e70a"},
{file = "mypy-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:84cf9f7d8a8a22bb6a36444480f4cbf089c917a4179fbf7eea003ea931944a7f"},
{file = "mypy-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a551ed0fc02455fe2c1fb0145160df8336b90ab80224739627b15ebe2b45e9dc"},
{file = "mypy-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:372fd97293ed0076d52695849f59acbbb8461c4ab447858cdaeaf734a396d823"},
{file = "mypy-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8a7444d6fcac7e2585b10abb91ad900a576da7af8f5cffffbff6065d9115813"},
{file = "mypy-1.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:35b13335c6c46a386577a51f3d38b2b5d14aa619e9633bb756bd77205e4bd09f"},
{file = "mypy-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:2c9d570f53908cbea326ad8f96028a673b814d9dca7515bf71d95fa662c3eb6f"},
{file = "mypy-1.5.0-py3-none-any.whl", hash = "sha256:69b32d0dedd211b80f1b7435644e1ef83033a2af2ac65adcdc87c38db68a86be"},
{file = "mypy-1.5.0.tar.gz", hash = "sha256:f3460f34b3839b9bc84ee3ed65076eb827cd99ed13ed08d723f9083cada4a212"},
{file = "mypy-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70"},
{file = "mypy-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0"},
{file = "mypy-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9ec1f695f0c25986e6f7f8778e5ce61659063268836a38c951200c57479cc12"},
{file = "mypy-1.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:abed92d9c8f08643c7d831300b739562b0a6c9fcb028d211134fc9ab20ccad5d"},
{file = "mypy-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a156e6390944c265eb56afa67c74c0636f10283429171018446b732f1a05af25"},
{file = "mypy-1.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ac9c21bfe7bc9f7f1b6fae441746e6a106e48fc9de530dea29e8cd37a2c0cc4"},
{file = "mypy-1.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51cb1323064b1099e177098cb939eab2da42fea5d818d40113957ec954fc85f4"},
{file = "mypy-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:596fae69f2bfcb7305808c75c00f81fe2829b6236eadda536f00610ac5ec2243"},
{file = "mypy-1.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32cb59609b0534f0bd67faebb6e022fe534bdb0e2ecab4290d683d248be1b275"},
{file = "mypy-1.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:159aa9acb16086b79bbb0016145034a1a05360626046a929f84579ce1666b315"},
{file = "mypy-1.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f6b0e77db9ff4fda74de7df13f30016a0a663928d669c9f2c057048ba44f09bb"},
{file = "mypy-1.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26f71b535dfc158a71264e6dc805a9f8d2e60b67215ca0bfa26e2e1aa4d4d373"},
{file = "mypy-1.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc3a600f749b1008cc75e02b6fb3d4db8dbcca2d733030fe7a3b3502902f161"},
{file = "mypy-1.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:26fb32e4d4afa205b24bf645eddfbb36a1e17e995c5c99d6d00edb24b693406a"},
{file = "mypy-1.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:82cb6193de9bbb3844bab4c7cf80e6227d5225cc7625b068a06d005d861ad5f1"},
{file = "mypy-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a465ea2ca12804d5b34bb056be3a29dc47aea5973b892d0417c6a10a40b2d65"},
{file = "mypy-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9fece120dbb041771a63eb95e4896791386fe287fefb2837258925b8326d6160"},
{file = "mypy-1.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d28ddc3e3dfeab553e743e532fb95b4e6afad51d4706dd22f28e1e5e664828d2"},
{file = "mypy-1.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:57b10c56016adce71fba6bc6e9fd45d8083f74361f629390c556738565af8eeb"},
{file = "mypy-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f"},
{file = "mypy-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8f772942d372c8cbac575be99f9cc9d9fb3bd95c8bc2de6c01411e2c84ebca8a"},
{file = "mypy-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5d627124700b92b6bbaa99f27cbe615c8ea7b3402960f6372ea7d65faf376c14"},
{file = "mypy-1.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:361da43c4f5a96173220eb53340ace68cda81845cd88218f8862dfb0adc8cddb"},
{file = "mypy-1.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:330857f9507c24de5c5724235e66858f8364a0693894342485e543f5b07c8693"},
{file = "mypy-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:c543214ffdd422623e9fedd0869166c2f16affe4ba37463975043ef7d2ea8770"},
{file = "mypy-1.5.1-py3-none-any.whl", hash = "sha256:f757063a83970d67c444f6e01d9550a7402322af3557ce7630d3c957386fa8f5"},
{file = "mypy-1.5.1.tar.gz", hash = "sha256:b031b9601f1060bf1281feab89697324726ba0c0bae9d7cd7ab4b690940f0b92"},
]
[package.dependencies]
@ -2087,20 +2092,20 @@ docs = ["Sphinx (>=5.3.0,<6.0.0)"]
[[package]]
name = "pylacus"
version = "1.6.1"
version = "1.6.2"
description = "Python CLI and module for lacus"
optional = false
python-versions = ">=3.8,<4.0"
files = [
{file = "pylacus-1.6.1-py3-none-any.whl", hash = "sha256:60850a634619892a72637b6f94f28b5326c9382e4d7fc888bb66067879ccfa6a"},
{file = "pylacus-1.6.1.tar.gz", hash = "sha256:fbffa643cf5c1813c86bf25cab1fc593646f59ee7d446a376eb4c2ab0f9d3292"},
{file = "pylacus-1.6.2-py3-none-any.whl", hash = "sha256:3c52e49f06e2facfc5ae36af4166b6bac61b8d715b324fcb696b11cc5a779a94"},
{file = "pylacus-1.6.2.tar.gz", hash = "sha256:dfb8e7db551fe7b1f58292ff89988b18251f51446aa43e087b8600d310786049"},
]
[package.dependencies]
requests = ">=2.31.0,<3.0.0"
[package.extras]
docs = ["Sphinx (>=7.1.2,<8.0.0)"]
docs = ["Sphinx (<7.2)", "Sphinx (>=7.2,<8.0)"]
[[package]]
name = "pylookyloo"
@ -2121,20 +2126,20 @@ docs = ["Sphinx (>=7.0.1,<8.0.0)"]
[[package]]
name = "pylookyloomonitoring"
version = "1.1.0"
version = "1.1.1"
description = "Python API to connect to lookyloo monitoring"
optional = false
python-versions = ">=3.8,<4.0"
files = [
{file = "pylookyloomonitoring-1.1.0-py3-none-any.whl", hash = "sha256:0e9e5db2e002628c352c9d38472aacf64ecfb06dcf207e13adb9dc995c987ded"},
{file = "pylookyloomonitoring-1.1.0.tar.gz", hash = "sha256:0fd76bdf00a0b01f6d0abb08fc20f1a0d9d9d059c4235c602d66c93430e806ae"},
{file = "pylookyloomonitoring-1.1.1-py3-none-any.whl", hash = "sha256:6496f78d7bb9221bfcd260b3fdb71671f64c5bfe2b372aeebc9572be0646bdcd"},
{file = "pylookyloomonitoring-1.1.1.tar.gz", hash = "sha256:56a65209f86721ff0410c8aa267ae7235a594b4189cd02985f6cbef5031c3643"},
]
[package.dependencies]
requests = ">=2.31.0,<3.0.0"
[package.extras]
docs = ["Sphinx (>=7.0.1,<8.0.0)"]
docs = ["Sphinx (<7.2)", "Sphinx (>=7.2,<8.0)"]
[[package]]
name = "pymisp"
@ -2170,68 +2175,68 @@ virustotal = ["validators (>=0.20.0,<0.21.0)"]
[[package]]
name = "pypandora"
version = "1.5.0"
version = "1.5.1"
description = "Python CLI and module for pandora"
optional = false
python-versions = ">=3.8,<4.0"
files = [
{file = "pypandora-1.5.0-py3-none-any.whl", hash = "sha256:dd5de14d0c2cc53586e1ccf26b4da38dc23ea856e102f98a246c65d6dcfae341"},
{file = "pypandora-1.5.0.tar.gz", hash = "sha256:1a7d5a830f0146eaf36fd20e320f016f9e984d7ec700bf00b3849cc8c5018e9a"},
{file = "pypandora-1.5.1-py3-none-any.whl", hash = "sha256:1ce2a7bea45420df6576b2b98cad6afe82fb6f2be332ccdff1102814cb89cb59"},
{file = "pypandora-1.5.1.tar.gz", hash = "sha256:cdc7ebe0953365b49e49695febf05d1a05163b79cf448602e74f703c173122c6"},
]
[package.dependencies]
requests = ">=2.31.0,<3.0.0"
[package.extras]
docs = ["Sphinx (>=7.0.1,<8.0.0)"]
docs = ["Sphinx (<7.2)", "Sphinx (>=7.2,<8.0)"]
[[package]]
name = "pyphishtanklookup"
version = "1.3.0"
version = "1.3.1"
description = "Python CLI and module for PhishtankLookup"
optional = false
python-versions = ">=3.8,<4.0"
files = [
{file = "pyphishtanklookup-1.3.0-py3-none-any.whl", hash = "sha256:be685f378d1ea658ee1e02b66169ff75333fa1a0c065947cdfd1595e426660d6"},
{file = "pyphishtanklookup-1.3.0.tar.gz", hash = "sha256:a539efb92f0337d8e955e1ba296a9976f6c8cc10ba3ba81dd1a5a044d5d1c035"},
{file = "pyphishtanklookup-1.3.1-py3-none-any.whl", hash = "sha256:0d167f87dd4c0a93a24343e82bf544b2899302dce7f2f794bc84c50c7da5d713"},
{file = "pyphishtanklookup-1.3.1.tar.gz", hash = "sha256:c7a1dd84925971659617a78e76a8ca3617669bbd5432759258f888eb3e059a4a"},
]
[package.dependencies]
requests = ">=2.31.0,<3.0.0"
[package.extras]
docs = ["Sphinx (>=6.2.1,<7.0.0)"]
docs = ["Sphinx (<7.2)", "Sphinx (>=7.2,<8.0)"]
[[package]]
name = "pysanejs"
version = "2.0.1"
version = "2.0.2"
description = "Python client for SaneJS"
optional = false
python-versions = ">=3.8,<4.0"
files = [
{file = "pysanejs-2.0.1-py3-none-any.whl", hash = "sha256:1eb2143e649682776b8ede2ffe667ed92c1f45d4d3507d59c9be1edf82711192"},
{file = "pysanejs-2.0.1.tar.gz", hash = "sha256:2a5068592214d1415d047d52e79314dd092df40b2ee6c996ea124189072e97be"},
{file = "pysanejs-2.0.2-py3-none-any.whl", hash = "sha256:6cdf462633823979486e721c9cf5c60a814ea949ff7392ae7aed823b35fc2166"},
{file = "pysanejs-2.0.2.tar.gz", hash = "sha256:7100009f059dce496cb1945dc31587e3bdf617b4ce68ebaccf9c59e16fe47b52"},
]
[package.dependencies]
requests = ">=2.28.1,<3.0.0"
requests = ">=2.31.0,<3.0.0"
[[package]]
name = "pysecuritytxt"
version = "1.1.1"
version = "1.1.2"
description = "Python CLI and module for querying security.txt files on domains."
optional = false
python-versions = ">=3.8,<4.0"
files = [
{file = "pysecuritytxt-1.1.1-py3-none-any.whl", hash = "sha256:f5f03cdfd0b23dcf60001430c376a4d34f26dc5e3d4ef00a452c40cadea00778"},
{file = "pysecuritytxt-1.1.1.tar.gz", hash = "sha256:3d160408253850689edd0fe4b1db551324899c078aa700893afb591ec2dc8e95"},
{file = "pysecuritytxt-1.1.2-py3-none-any.whl", hash = "sha256:f4f6c7cc58e208885454b97f318bfc9df7591c045d215eb48b76a5dd5c7037c4"},
{file = "pysecuritytxt-1.1.2.tar.gz", hash = "sha256:8ca67a2ad8d794fd1f5a5f9430a65b36c6cec69a2e648d0ecc760d997d2d63c3"},
]
[package.dependencies]
requests = ">=2.31.0,<3.0.0"
[package.extras]
docs = ["Sphinx (>=7.0.1,<8.0.0)"]
docs = ["Sphinx (<7.2)", "Sphinx (>=7.2,<8.0)"]
[[package]]
name = "pysocks"
@ -2786,13 +2791,13 @@ files = [
[[package]]
name = "types-redis"
version = "4.6.0.3"
version = "4.6.0.4"
description = "Typing stubs for redis"
optional = false
python-versions = "*"
files = [
{file = "types-redis-4.6.0.3.tar.gz", hash = "sha256:efdef37dc0c04bf5786195651fd694f8bfdd693eac09ec4af46d90f72652558f"},
{file = "types_redis-4.6.0.3-py3-none-any.whl", hash = "sha256:67c44c14369c33c2a300da2a50b5607c0fc888f7b85eeb7c73e15c78a0f05edd"},
{file = "types-redis-4.6.0.4.tar.gz", hash = "sha256:c475a9d3cf73dd696c3887d30644323fc56f5e00af96151035b3b5b52875c9b3"},
{file = "types_redis-4.6.0.4-py3-none-any.whl", hash = "sha256:03a1e1659ae4d8f6543bc2b8b11e94b1ee53937f313b1dc6f67dc7bde7d38fe0"},
]
[package.dependencies]
@ -3154,4 +3159,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
[metadata]
lock-version = "2.0"
python-versions = ">=3.8,<3.12"
content-hash = "71c0285acfb1dfd2bbef0d71aa49b144671ad1a5421e57bedf679a6f24599109"
content-hash = "77fdf2503ab1411bb27ea9142364b7e31cee4fb0d4caf05eaf0fb9cb378c124f"

View File

@ -46,7 +46,7 @@ bootstrap-flask = "^2.3.0"
defang = "^0.5.3"
vt-py = "^0.17.5"
pyeupi = "^1.1"
pysanejs = "^2.0.1"
pysanejs = "^2.0.2"
pylookyloo = "^1.21.0"
dnspython = "^2.4.2"
pytaxonomies = "^1.5.0"
@ -54,7 +54,7 @@ pymisp = {version = "^2.4.174", extras = ["url", "fileobjects"]}
Pillow = "^10.0.0"
flask-restx = "^1.1.0"
rich = "^13.5.2"
pyphishtanklookup = "^1.3.0"
pyphishtanklookup = "^1.3.1"
Flask-Cors = "^4.0.0"
pyhashlookup = "^1.2.1"
lief = "^0.13.2"
@ -64,24 +64,24 @@ har2tree = "^1.21.7"
passivetotal = "^2.5.9"
werkzeug = "^2.3.7"
filetype = "^1.2.0"
pypandora = "^1.5.0"
lacuscore = "^1.6.7"
pylacus = "^1.6.1"
pypandora = "^1.5.1"
lacuscore = "^1.6.8"
pylacus = "^1.6.2"
pyipasnhistory = "^2.1.2"
publicsuffixlist = "^0.10.0.20230814"
pyfaup = "^1.2"
chardet = "^5.2.0"
pysecuritytxt = "^1.1.1"
pylookyloomonitoring = "^1.1.0"
pysecuritytxt = "^1.1.2"
pylookyloomonitoring = "^1.1.1"
pytz = {"version" = "^2023.3", python = "<3.9"}
[tool.poetry.group.dev.dependencies]
mypy = "^1.5.0"
mypy = "^1.5.1"
ipython = [
{version = "<8.13.0", python = "<3.9"},
{version = "^8.13.0", python = ">=3.9"}
]
types-redis = {version = "^4.6.0.3"}
types-redis = {version = "^4.6.0.4"}
types-requests = "^2.31.0.2"
types-pkg-resources = "^0.1.3"
types-Deprecated = "^1.2.9.3"