Skip to content
Snippets Groups Projects
Commit 40e8fc51 authored by Klaas Kliffen's avatar Klaas Kliffen :satellite:
Browse files

Merge branch 'pip_installable' into 'master'

Pip installable

See merge request !1
parents 8049f089 d9455a54
Branches
No related tags found
1 merge request!1Pip installable
.env .env
*.egg-info
*.pyc
\ No newline at end of file
...@@ -5,16 +5,8 @@ Generates csv input files for the `atdb_load_tasks_from_table` script. ...@@ -5,16 +5,8 @@ Generates csv input files for the `atdb_load_tasks_from_table` script.
### Installation ### Installation
```bash ```bash
# Using pipenv (update python version if necessary) # Using pip install (requires valid ssh key, until the repo is set to public)
cd atdb_csv_gen pip install pip install -e "git+https://git.astron.nl/ldv/ldv_utils.git#egg=atdb-csv-gen&subdirectory=atdb_csv_gen"
pipenv install
# or using pip (optional, use a virtual env)
cd atdb_csv_gen
pip install -r requirements.txt
# or using docker
docker-build -t ldv-atdb-csv-gen csv_gen/
``` ```
### Running ### Running
...@@ -22,21 +14,12 @@ docker-build -t ldv-atdb-csv-gen csv_gen/ ...@@ -22,21 +14,12 @@ docker-build -t ldv-atdb-csv-gen csv_gen/
# copy .env.example to .env and fill in the environment vars (DB credentials) # copy .env.example to .env and fill in the environment vars (DB credentials)
cp ./atdb_csv_gen/.env.example ./atdb_csv_gen/.env cp ./atdb_csv_gen/.env.example ./atdb_csv_gen/.env
# run using pipenv # run using python
cd atdb_csv_gen
pipenv shell # this will use the .env file to set environment variables
./csv_gen.py -v -o out.csv 650273
# run using python (note)
cd atdb_csv_gen
export $(cat .env | xargs) # or export env vars elsewhere export $(cat .env | xargs) # or export env vars elsewhere
./csv_gen.py -v -o out.csv 650273 atdb_csv_gen -v -o out.csv 650273
# run in docker (creates out.csv in outdir)
docker run -it --rm --env-file atdb_csv_gen/.env -v $PWD/outdir:/outdir ldv-atdb-csv-gen /app/csv_gen.py -v -o /outdir/out.csv 650273
# more info and flags # More info and flags
docker run -it --rm ldv-atdb-csv-gen atdb_csv_gen -h
``` ```
### Caveats ### Caveats
......
DB_USERNAME= DB_USERNAME=
DB_PASSWORD= DB_PASSWORD=
DB_DATABASE= DB_DATABASE=
DB_HOST=sdc-db.astron.nl DB_HOST=
\ No newline at end of file \ No newline at end of file
FROM python:3.10-slim
RUN pip --no-cache-dir install pipenv
WORKDIR /app
COPY Pipfile* /app/
RUN pipenv lock -r > requirements.txt && pip install -r requirements.txt
COPY csv_gen.py /app/
CMD [ "/app/csv_gen.py", "-h" ]
\ No newline at end of file
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
psycopg2-binary = "*"
sqlalchemy = "*"
[dev-packages]
flake8 = "*"
black = "*"
[requires]
python_version = "3.10"
[pipenv]
allow_prereleases = true
{
"_meta": {
"hash": {
"sha256": "6f0f652bc369fdd2d56890d91ca935b9973a50f4d398ca19d1d456010eb804f8"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.10"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"greenlet": {
"hashes": [
"sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711",
"sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd",
"sha256:049fe7579230e44daef03a259faa24511d10ebfa44f69411d99e6a184fe68073",
"sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708",
"sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67",
"sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23",
"sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1",
"sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08",
"sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd",
"sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa",
"sha256:356b3576ad078c89a6107caa9c50cc14e98e3a6c4874a37c3e0273e4baf33de8",
"sha256:40b951f601af999a8bf2ce8c71e8aaa4e8c6f78ff8afae7b808aae2dc50d4c40",
"sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab",
"sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6",
"sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc",
"sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b",
"sha256:7418b6bfc7fe3331541b84bb2141c9baf1ec7132a7ecd9f375912eca810e714e",
"sha256:7cbd7574ce8e138bda9df4efc6bf2ab8572c9aff640d8ecfece1b006b68da963",
"sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3",
"sha256:833e1551925ed51e6b44c800e71e77dacd7e49181fdc9ac9a0bf3714d515785d",
"sha256:8639cadfda96737427330a094476d4c7a56ac03de7265622fcf4cfe57c8ae18d",
"sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28",
"sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3",
"sha256:903bbd302a2378f984aef528f76d4c9b1748f318fe1294961c072bdc7f2ffa3e",
"sha256:93f81b134a165cc17123626ab8da2e30c0455441d4ab5576eed73a64c025b25c",
"sha256:95e69877983ea39b7303570fa6760f81a3eec23d0e3ab2021b7144b94d06202d",
"sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0",
"sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497",
"sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee",
"sha256:aa5b467f15e78b82257319aebc78dd2915e4c1436c3c0d1ad6f53e47ba6e2713",
"sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58",
"sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a",
"sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06",
"sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88",
"sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4",
"sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5",
"sha256:dd0b1e9e891f69e7675ba5c92e28b90eaa045f6ab134ffe70b52e948aa175b3c",
"sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a",
"sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1",
"sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43",
"sha256:eb6ea6da4c787111adf40f697b4e58732ee0942b5d3bd8f435277643329ba627",
"sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b",
"sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168",
"sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d",
"sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5",
"sha256:f3acda1924472472ddd60c29e5b9db0cec629fbe3c5c5accb74d6d6d14773478",
"sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf",
"sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce",
"sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c",
"sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==1.1.2"
},
"psycopg2-binary": {
"hashes": [
"sha256:0b7dae87f0b729922e06f85f667de7bf16455d411971b2043bbd9577af9d1975",
"sha256:0f2e04bd2a2ab54fa44ee67fe2d002bb90cee1c0f1cc0ebc3148af7b02034cbd",
"sha256:123c3fb684e9abfc47218d3784c7b4c47c8587951ea4dd5bc38b6636ac57f616",
"sha256:1473c0215b0613dd938db54a653f68251a45a78b05f6fc21af4326f40e8360a2",
"sha256:14db1752acdd2187d99cb2ca0a1a6dfe57fc65c3281e0f20e597aac8d2a5bd90",
"sha256:1e3a362790edc0a365385b1ac4cc0acc429a0c0d662d829a50b6ce743ae61b5a",
"sha256:1e85b74cbbb3056e3656f1cc4781294df03383127a8114cbc6531e8b8367bf1e",
"sha256:20f1ab44d8c352074e2d7ca67dc00843067788791be373e67a0911998787ce7d",
"sha256:24b0b6688b9f31a911f2361fe818492650795c9e5d3a1bc647acbd7440142a4f",
"sha256:2f62c207d1740b0bde5c4e949f857b044818f734a3d57f1d0d0edc65050532ed",
"sha256:3242b9619de955ab44581a03a64bdd7d5e470cc4183e8fcadd85ab9d3756ce7a",
"sha256:35c4310f8febe41f442d3c65066ca93cccefd75013df3d8c736c5b93ec288140",
"sha256:4235f9d5ddcab0b8dbd723dca56ea2922b485ea00e1dafacf33b0c7e840b3d32",
"sha256:542875f62bc56e91c6eac05a0deadeae20e1730be4c6334d8f04c944fcd99759",
"sha256:5ced67f1e34e1a450cdb48eb53ca73b60aa0af21c46b9b35ac3e581cf9f00e31",
"sha256:661509f51531ec125e52357a489ea3806640d0ca37d9dada461ffc69ee1e7b6e",
"sha256:7360647ea04db2e7dff1648d1da825c8cf68dc5fbd80b8fb5b3ee9f068dcd21a",
"sha256:736b8797b58febabb85494142c627bd182b50d2a7ec65322983e71065ad3034c",
"sha256:8c13d72ed6af7fd2c8acbd95661cf9477f94e381fce0792c04981a8283b52917",
"sha256:988b47ac70d204aed01589ed342303da7c4d84b56c2f4c4b8b00deda123372bf",
"sha256:995fc41ebda5a7a663a254a1dcac52638c3e847f48307b5416ee373da15075d7",
"sha256:a36c7eb6152ba5467fb264d73844877be8b0847874d4822b7cf2d3c0cb8cdcb0",
"sha256:aed4a9a7e3221b3e252c39d0bf794c438dc5453bc2963e8befe9d4cd324dff72",
"sha256:aef9aee84ec78af51107181d02fe8773b100b01c5dfde351184ad9223eab3698",
"sha256:b0221ca5a9837e040ebf61f48899926b5783668b7807419e4adae8175a31f773",
"sha256:b4d7679a08fea64573c969f6994a2631908bb2c0e69a7235648642f3d2e39a68",
"sha256:c250a7ec489b652c892e4f0a5d122cc14c3780f9f643e1a326754aedf82d9a76",
"sha256:ca86db5b561b894f9e5f115d6a159fff2a2570a652e07889d8a383b5fae66eb4",
"sha256:cfc523edecddaef56f6740d7de1ce24a2fdf94fd5e704091856a201872e37f9f",
"sha256:d92272c7c16e105788efe2cfa5d680f07e34e0c29b03c1908f8636f55d5f915a",
"sha256:da113b70f6ec40e7d81b43d1b139b9db6a05727ab8be1ee559f3a69854a69d34",
"sha256:f6fac64a38f6768e7bc7b035b9e10d8a538a9fadce06b983fb3e6fa55ac5f5ce",
"sha256:f8559617b1fcf59a9aedba2c9838b5b6aa211ffedecabca412b92a1ff75aac1a",
"sha256:fbb42a541b1093385a2d8c7eec94d26d30437d0e77c1d25dae1dcc46741a385e"
],
"index": "pypi",
"version": "==2.9.1"
},
"sqlalchemy": {
"hashes": [
"sha256:07ac4461a1116b317519ddf6f34bcb00b011b5c1370ebeaaf56595504ffc7e84",
"sha256:090536fd23bf49077ee94ff97142bc5ee8bad24294c3d7c8d5284267c885dde7",
"sha256:1dee515578d04bc80c4f9a8c8cfe93f455db725059e885f1b1da174d91c4d077",
"sha256:1ef37c9ec2015ce2f0dc1084514e197f2f199d3dc3514190db7620b78e6004c8",
"sha256:295b90efef1278f27fe27d94a45460ae3c17f5c5c2b32c163e29c359740a1599",
"sha256:2ce42ad1f59eb85c55c44fb505f8854081ee23748f76b62a7f569cfa9b6d0604",
"sha256:2feb028dc75e13ba93456a42ac042b255bf94dbd692bf80b47b22653bb25ccf8",
"sha256:31f4426cfad19b5a50d07153146b2bcb372a279975d5fa39f98883c0ef0f3313",
"sha256:3c0c5f54560a92691d54b0768d67b4d3159e514b426cfcb1258af8c195577e8f",
"sha256:463ef692259ff8189be42223e433542347ae17e33f91c1013e9c5c64e2798088",
"sha256:4a882dedb9dfa6f33524953c3e3d72bcf518a5defd6d5863150a821928b19ad3",
"sha256:4c185c928e2638af9bae13acc3f70e0096eac76471a1101a10f96b80666b8270",
"sha256:5039faa365e7522a8eb4736a54afd24a7e75dcc33b81ab2f0e6c456140f1ad64",
"sha256:5c6774b34782116ad9bdec61c2dbce9faaca4b166a0bc8e7b03c2b870b121d94",
"sha256:6bc7f9d7d90ef55e8c6db1308a8619cd8f40e24a34f759119b95e7284dca351a",
"sha256:7e8ef103eaa72a857746fd57dda5b8b5961e8e82a528a3f8b7e2884d8506f0b7",
"sha256:7ef421c3887b39c6f352e5022a53ac18de8387de331130481cb956b2d029cad6",
"sha256:908fad32c53b17aad12d722379150c3c5317c422437e44032256a77df1746292",
"sha256:91efbda4e6d311812f23996242bad7665c1392209554f8a31ec6db757456db5c",
"sha256:a6506c17b0b6016656783232d0bdd03fd333f1f654d51a14d93223f953903646",
"sha256:a95bf9c725012dcd7ea3cac16bf647054e0d62b31d67467d228338e6a163e4ff",
"sha256:ad7e403fc1e3cb76e802872694e30d6ca6129b9bc6ad4e7caa48ca35f8a144f8",
"sha256:b86f762cee3709722ab4691981958cbec475ea43406a6916a7ec375db9cbd9e9",
"sha256:ba84026e84379326bbf2f0c50792f2ae56ab9c01937df5597b6893810b8ca369",
"sha256:bca660b76672e15d70a7dba5e703e1ce451a0257b6bd2028e62b0487885e8ae9",
"sha256:c24c01dcd03426a5fe5ee7af735906bec6084977b9027a3605d11d949a565c01",
"sha256:c2f2114b0968a280f94deeeaa31cfbac9175e6ac7bd3058b3ce6e054ecd762b3",
"sha256:c46f013ff31b80cbe36410281675e1fb4eaf3e25c284fd8a69981c73f6fa4cb4",
"sha256:c757ba1279b85b3460e72e8b92239dae6f8b060a75fb24b3d9be984dd78cfa55",
"sha256:cc6b21f19bc9d4cd77cbcba5f3b260436ce033f1053cea225b6efea2603d201e",
"sha256:dbf588ab09e522ac2cbd010919a592c6aae2f15ccc3cd9a96d01c42fbc13f63e",
"sha256:de996756d894a2d52c132742e3b6d64ecd37e0919ddadf4dc3981818777c7e67",
"sha256:e700d48056475d077f867e6a36e58546de71bdb6fdc3d34b879e3240827fefab",
"sha256:f1e97c5f36b94542f72917b62f3a2f92be914b2cf33b80fa69cede7529241d2a",
"sha256:fb2aa74a6e3c2cebea38dd21633671841fbe70ea486053cba33d68e3e22ccc0a",
"sha256:ff8f91a7b1c4a1c7772caa9efe640f2768828897044748f2458b708f1026e2d4"
],
"index": "pypi",
"version": "==1.4.26"
}
},
"develop": {
"black": {
"hashes": [
"sha256:380f1b5da05e5a1429225676655dddb96f5ae8c75bdf91e53d798871b902a115",
"sha256:7de4cfc7eb6b710de325712d40125689101d21d25283eed7e9998722cf10eb91"
],
"index": "pypi",
"version": "==21.9b0"
},
"click": {
"hashes": [
"sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3",
"sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"
],
"markers": "python_version >= '3.6'",
"version": "==8.0.3"
},
"flake8": {
"hashes": [
"sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d",
"sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"
],
"index": "pypi",
"version": "==4.0.1"
},
"mccabe": {
"hashes": [
"sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42",
"sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"
],
"version": "==0.6.1"
},
"mypy-extensions": {
"hashes": [
"sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d",
"sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"
],
"version": "==0.4.3"
},
"pathspec": {
"hashes": [
"sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a",
"sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"
],
"version": "==0.9.0"
},
"platformdirs": {
"hashes": [
"sha256:367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2",
"sha256:8868bbe3c3c80d42f20156f22e7131d2fb321f5bc86a2a345375c6481a67021d"
],
"markers": "python_version >= '3.6'",
"version": "==2.4.0"
},
"pycodestyle": {
"hashes": [
"sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20",
"sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==2.8.0"
},
"pyflakes": {
"hashes": [
"sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c",
"sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==2.4.0"
},
"regex": {
"hashes": [
"sha256:0c186691a7995ef1db61205e00545bf161fb7b59cdb8c1201c89b333141c438a",
"sha256:0dcc0e71118be8c69252c207630faf13ca5e1b8583d57012aae191e7d6d28b84",
"sha256:0f7552429dd39f70057ac5d0e897e5bfe211629652399a21671e53f2a9693a4e",
"sha256:129472cd06062fb13e7b4670a102951a3e655e9b91634432cfbdb7810af9d710",
"sha256:13ec99df95003f56edcd307db44f06fbeb708c4ccdcf940478067dd62353181e",
"sha256:1f2b59c28afc53973d22e7bc18428721ee8ca6079becf1b36571c42627321c65",
"sha256:2b20f544cbbeffe171911f6ce90388ad36fe3fad26b7c7a35d4762817e9ea69c",
"sha256:2fb698037c35109d3c2e30f2beb499e5ebae6e4bb8ff2e60c50b9a805a716f79",
"sha256:34d870f9f27f2161709054d73646fc9aca49480617a65533fc2b4611c518e455",
"sha256:391703a2abf8013d95bae39145d26b4e21531ab82e22f26cd3a181ee2644c234",
"sha256:450dc27483548214314640c89a0f275dbc557968ed088da40bde7ef8fb52829e",
"sha256:45b65d6a275a478ac2cbd7fdbf7cc93c1982d613de4574b56fd6972ceadb8395",
"sha256:5095a411c8479e715784a0c9236568ae72509450ee2226b649083730f3fadfc6",
"sha256:530fc2bbb3dc1ebb17f70f7b234f90a1dd43b1b489ea38cea7be95fb21cdb5c7",
"sha256:56f0c81c44638dfd0e2367df1a331b4ddf2e771366c4b9c5d9a473de75e3e1c7",
"sha256:5e9c9e0ce92f27cef79e28e877c6b6988c48b16942258f3bc55d39b5f911df4f",
"sha256:6d7722136c6ed75caf84e1788df36397efdc5dbadab95e59c2bba82d4d808a4c",
"sha256:74d071dbe4b53c602edd87a7476ab23015a991374ddb228d941929ad7c8c922e",
"sha256:7b568809dca44cb75c8ebb260844ea98252c8c88396f9d203f5094e50a70355f",
"sha256:80bb5d2e92b2258188e7dcae5b188c7bf868eafdf800ea6edd0fbfc029984a88",
"sha256:8d1cdcda6bd16268316d5db1038965acf948f2a6f43acc2e0b1641ceab443623",
"sha256:9f665677e46c5a4d288ece12fdedf4f4204a422bb28ff05f0e6b08b7447796d1",
"sha256:a30513828180264294953cecd942202dfda64e85195ae36c265daf4052af0464",
"sha256:a7a986c45d1099a5de766a15de7bee3840b1e0e1a344430926af08e5297cf666",
"sha256:a940ca7e7189d23da2bfbb38973832813eab6bd83f3bf89a977668c2f813deae",
"sha256:ab7c5684ff3538b67df3f93d66bd3369b749087871ae3786e70ef39e601345b0",
"sha256:be04739a27be55631069b348dda0c81d8ea9822b5da10b8019b789e42d1fe452",
"sha256:c0938ddd60cc04e8f1faf7a14a166ac939aac703745bfcd8e8f20322a7373019",
"sha256:cb46b542133999580ffb691baf67410306833ee1e4f58ed06b6a7aaf4e046952",
"sha256:d134757a37d8640f3c0abb41f5e68b7cf66c644f54ef1cb0573b7ea1c63e1509",
"sha256:de557502c3bec8e634246588a94e82f1ee1b9dfcfdc453267c4fb652ff531570",
"sha256:ded0c4a3eee56b57fcb2315e40812b173cafe79d2f992d50015f4387445737fa",
"sha256:e1dae12321b31059a1a72aaa0e6ba30156fe7e633355e445451e4021b8e122b6",
"sha256:eb672217f7bd640411cfc69756ce721d00ae600814708d35c930930f18e8029f",
"sha256:ee684f139c91e69fe09b8e83d18b4d63bf87d9440c1eb2eeb52ee851883b1b29",
"sha256:f3f9a91d3cc5e5b0ddf1043c0ae5fa4852f18a1c0050318baf5fc7930ecc1f9c"
],
"version": "==2021.10.23"
},
"tomli": {
"hashes": [
"sha256:c6ce0015eb38820eaf32b5db832dbc26deb3dd427bd5f6556cf0acac2c214fee",
"sha256:f04066f68f5554911363063a30b108d2b5a5b1a010aa8b6132af78489fe3aade"
],
"markers": "python_version >= '3.6'",
"version": "==1.2.2"
},
"typing-extensions": {
"hashes": [
"sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e",
"sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7",
"sha256:f1d25edafde516b146ecd0613dabcc61409817af4766fbbcfb8d1ad4ec441a34"
],
"version": "==3.10.0.2"
}
}
}
from .csv_gen import gen_csv, main
\ No newline at end of file
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
import logging import logging
import os import os
import sys
from argparse import ArgumentParser, Namespace from argparse import ArgumentParser, Namespace
from sys import version from sys import version
from typing import Iterator, List, Optional, Tuple from typing import Iterator, List, Optional, Tuple
...@@ -22,10 +23,15 @@ logger = logging.getLogger(__name__) ...@@ -22,10 +23,15 @@ logger = logging.getLogger(__name__)
def parse_args() -> Namespace: def parse_args() -> Namespace:
""" Parse CLI arguments """ """ Parse CLI arguments """
parser = ArgumentParser(description="Generates CSV for atdb_load_tasks_from_table")
parser.add_argument("obs_id", help="Observation ID (SAS ID)") parser = ArgumentParser(description="Generates CSV for atdb_load_tasks_from_table\n"
parser.add_argument("-o", help="Output file") "Requires the following env vars:\n"
parser.add_argument("--save-missing", help="Directory to store csc with missing files") "\tDB_USERNAME, DB_PASSWORD, DB_DATABASE and optionally:\n"
"\tDB_HOST (localhost by default) and DB_PORT (5432, postgres default)"
)
parser.add_argument("obs_id", type=str, help="Observation ID (SAS ID)")
parser.add_argument("-o", type=str, help="Output file")
parser.add_argument("--save-missing", type=str, help="Directory to store csv with missing files")
parser.add_argument("-v", action="store_true", help="Verbose logging") parser.add_argument("-v", action="store_true", help="Verbose logging")
parser.add_argument("-q", action="store_true", help="Quiet logging (only errors)") parser.add_argument("-q", action="store_true", help="Quiet logging (only errors)")
return parser.parse_args() return parser.parse_args()
...@@ -64,7 +70,23 @@ def write_output(csv_data: str, output: Optional[str]): ...@@ -64,7 +70,23 @@ def write_output(csv_data: str, output: Optional[str]):
else: else:
print(csv_data) print(csv_data)
def main(obs_id: str, o_file: Optional[str]): def gen_csv(obs_id: str, o_file: Optional[str] = None, save_missing:Optional[str] = None):
""" Generate CSV file for ATDB
Parameters
----------
obs_id : string
observation id
o_file : string, optional
File to write the output to (by default to stdout)
save_missing : string, optional
Directory to write missing files output to (by default only shows warnings!)
"""
if not all([USER, PASSWORD, DATABASE, HOST, PORT]):
raise RuntimeError("Missing DB credentials in env vars.\n"
"Did you export the .env file?")
engine = create_engine(f"postgresql://{USER}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}") engine = create_engine(f"postgresql://{USER}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}")
logger.debug("Connected to %s:%s", HOST, PORT) logger.debug("Connected to %s:%s", HOST, PORT)
...@@ -86,6 +108,8 @@ def main(obs_id: str, o_file: Optional[str]): ...@@ -86,6 +108,8 @@ def main(obs_id: str, o_file: Optional[str]):
logger.warning("Observation contains %i registered files which are not present on disk", len(reg_no_file)) logger.warning("Observation contains %i registered files which are not present on disk", len(reg_no_file))
for row in reg_no_file: for row in reg_no_file:
logger.warning(row) logger.warning(row)
if save_missing:
write_output("\n".join(reg_no_file), os.path.join(save_missing, "reg_no_file.csv"))
# File found, not registered # File found, not registered
file_no_reg = cra_data.difference(reg_data) file_no_reg = cra_data.difference(reg_data)
...@@ -93,6 +117,8 @@ def main(obs_id: str, o_file: Optional[str]): ...@@ -93,6 +117,8 @@ def main(obs_id: str, o_file: Optional[str]):
logger.warning("Observation contains %i files on disk which are not registered in the LTA", len(file_no_reg)) logger.warning("Observation contains %i files on disk which are not registered in the LTA", len(file_no_reg))
for row in file_no_reg: for row in file_no_reg:
logger.warning(row) logger.warning(row)
if save_missing:
write_output("\n".join(file_no_reg), os.path.join(save_missing, "file_no_reg.csv"))
inter = reg_data.intersection(cra_data) inter = reg_data.intersection(cra_data)
...@@ -102,7 +128,7 @@ def main(obs_id: str, o_file: Optional[str]): ...@@ -102,7 +128,7 @@ def main(obs_id: str, o_file: Optional[str]):
logger.info("Done") logger.info("Done")
if __name__ == "__main__": def main():
args = parse_args() args = parse_args()
if args.v: if args.v:
...@@ -112,4 +138,7 @@ if __name__ == "__main__": ...@@ -112,4 +138,7 @@ if __name__ == "__main__":
else: else:
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
main(obs_id=args.obs_id,o_file=args.o) gen_csv(obs_id=args.obs_id,o_file=args.o, save_missing=args.save_missing)
if __name__ == "__main__":
main()
#!/usr/bin/env python3
import atdb_csv_gen
atdb_csv_gen.main()
\ No newline at end of file
# psycopg2-binary>=2.9.1
# These requirements were autogenerated by pipenv sqlalchemy>=1.4.26
# To regenerate from the project's Pipfile, run:
#
# pipenv lock --requirements
#
-i https://pypi.org/simple
greenlet==1.1.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
psycopg2-binary==2.9.1
sqlalchemy==1.4.26
# SPDX-License-Identifier: Apache-2.0
from setuptools import setup
def get_requirements() -> str:
with open("requirements.txt") as reqs:
return reqs.read().split("\n")
setup(
name="atdb-csv-gen",
version="1.0.0",
description="Tool to generate csv files for ATDB",
author="ASTRON",
packages=["atdb_csv_gen"],
install_requires=get_requirements(),
scripts=["bin/atdb_csv_gen"],
license="Apache License, Version 2.0",
zip=False,
python_requires=">=3.7"
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment