Compare commits

..

23 Commits

Author SHA1 Message Date
Colin Maudry 8e91737a4b Merge branch 'bugfix/1.5.0' into develop 2023-01-29 17:29:56 +01:00
Colin Maudry d9420468ba Amélioration logs script 2023-01-29 17:28:10 +01:00
Colin Maudry 950fb7865a Ajout de datasette-cluster map dans les deps 2023-01-29 17:26:56 +01:00
Colin Maudry 98bb73a7aa Freeze dependencies, remove reference to config var 2023-01-28 13:47:31 +01:00
Colin Maudry 282b30f515 Merge tag 'v1.4.1' into develop
ajout des traductions des opérations de filtrage à toutes les vues, pas seulement /db/decp
2021-06-14 17:34:27 +02:00
Colin Maudry 91bac3f56d Merge branch 'hotfix/1.4.1' into main 2021-06-14 17:34:15 +02:00
Colin Maudry 24f7c720e0 doc: notes de version 1.4.1 2021-06-14 17:34:03 +02:00
Colin Maudry 3e15e11ffa bug: ajout des traductions d'opérations à toutes les vues 2021-06-14 17:31:17 +02:00
Colin Maudry e9f4f50d51 Merge tag 'v1.4.0' into develop
Meilleurs ergonomie pour les filtres
2021-06-14 17:05:01 +02:00
Colin Maudry 369cadb27c Merge branch 'release/1.4.0' into main 2021-06-14 17:04:42 +02:00
Colin Maudry 017333f379 feature: amélioration des meta tags 2021-06-14 16:51:10 +02:00
Colin Maudry 6919a77852 feature: ajout des meta tags pour les twitter cards 2021-06-14 16:47:08 +02:00
Colin Maudry c2adf169aa doc: ajout des notes de version 1.4.0 2021-06-14 16:46:47 +02:00
Colin Maudry 582f1cbb63 feat: moins d'anglais 2021-06-06 07:09:46 +02:00
Colin Maudry 45c50845d7 feat: traduction du nom des opérations de filtrage 2021-06-06 06:53:04 +02:00
Colin Maudry ca365b4d7f bug: correction du titre de la page des notes de versions 2021-06-06 06:52:24 +02:00
Colin Maudry d36b74b4d4 Merge tag 'v1.3.0' into develop
Noms de colonnes plus clairs, corrections mineurs
2021-06-03 16:01:16 +02:00
Colin Maudry 393940c2a2 Merge branch 'release/1.3.0' into main 2021-06-03 16:00:57 +02:00
Colin Maudry a98eeb1272 bug: correction de l'indentation des puces dans les notes de version 2021-06-03 16:00:32 +02:00
Colin Maudry 72c915294a doc: notes de version 1.3.0 2021-06-03 15:54:05 +02:00
Colin Maudry 17f3cc5244 feat: affichage de noms de colonnes plus accessibles closes #45 2021-06-02 18:07:57 +02:00
Colin Maudry 55babc362e Suppression du bloc license en index, correction du lien vers le code source footer 2021-05-29 15:54:30 +02:00
Colin Maudry d817eafe48 Ignore db 2021-05-28 18:34:35 +02:00
15 changed files with 590 additions and 24 deletions
+1
View File
@@ -0,0 +1 @@
*.db
+14
View File
@@ -0,0 +1,14 @@
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
datasette = "*"
openpyxl = "*"
datasette-cluster-map = {git = "https://github.com/ColinMaudry/datasette-cluster-map.git"}
[dev-packages]
[requires]
python_version = "3.10"
Generated
+348
View File
@@ -0,0 +1,348 @@
{
"_meta": {
"hash": {
"sha256": "a68f59702ede1f11b621640f3bb5e181c234e28215225d728bec55d8353c2d6e"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.10"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"aiofiles": {
"hashes": [
"sha256:1142fa8e80dbae46bb6339573ad4c8c0841358f79c6eb50a493dceca14621bad",
"sha256:9107f1ca0b2a5553987a94a3c9959fe5b491fdf731389aa5b7b1bd0733e32de6"
],
"markers": "python_version >= '3.7' and python_version < '4.0'",
"version": "==22.1.0"
},
"anyio": {
"hashes": [
"sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421",
"sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"
],
"markers": "python_full_version >= '3.6.2'",
"version": "==3.6.2"
},
"asgi-csrf": {
"hashes": [
"sha256:6e9d3bddaeac1a8fd33b188fe2abc8271f9085ab7be6e1a7f4d3c9df5d7f741a",
"sha256:e974cffb8a4ab84a28a0088acbf7a4ecc5be4a64f08dcbe19c60dea103da01c0"
],
"version": "==0.9"
},
"asgiref": {
"hashes": [
"sha256:71e68008da809b957b7ee4b43dbccff33d1b23519fb8344e33f049897077afac",
"sha256:9567dfe7bd8d3c8c892227827c41cce860b368104c3431da67a0c5a65a949506"
],
"markers": "python_version >= '3.7'",
"version": "==3.6.0"
},
"certifi": {
"hashes": [
"sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3",
"sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"
],
"markers": "python_version >= '3.6'",
"version": "==2022.12.7"
},
"click": {
"hashes": [
"sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e",
"sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"
],
"markers": "python_version >= '3.7'",
"version": "==8.1.3"
},
"click-default-group-wheel": {
"hashes": [
"sha256:1599b0b6e0ff63ee806c2cb76593cb8cc73e723cd53532c92bc496dc6fc90e5c",
"sha256:e90da42d92c03e88a12ed0c0b69c8a29afb5d36e3dc8d29c423ba4219e6d7747"
],
"version": "==1.2.2"
},
"datasette": {
"hashes": [
"sha256:7253c244ab35b537b2aa5ac239d24fd101af4a46caef11ee06a727b1db4e64ca",
"sha256:ca30c37e515400b3ba1b07dfe51093238e33baca75ccf3d163645cf5b3c80fd5"
],
"index": "pypi",
"version": "==0.64.1"
},
"datasette-cluster-map": {
"git": "https://github.com/ColinMaudry/datasette-cluster-map.git",
"ref": "ab9c0d79448efbd737d9487bfcee227246ef3b87"
},
"datasette-leaflet": {
"hashes": [
"sha256:8fd4e634304be392ae6f7de770d4f22b95a37caecd676a35faeb6200da9423bc",
"sha256:fd88c25666e7680b25b4c6e5546bd02c9f5836bbc0fee61042dbb6b93d4139f0"
],
"markers": "python_version >= '3.6'",
"version": "==0.2.2"
},
"et-xmlfile": {
"hashes": [
"sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c",
"sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"
],
"markers": "python_version >= '3.6'",
"version": "==1.1.0"
},
"h11": {
"hashes": [
"sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d",
"sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"
],
"markers": "python_version >= '3.7'",
"version": "==0.14.0"
},
"httpcore": {
"hashes": [
"sha256:c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb",
"sha256:da1fb708784a938aa084bde4feb8317056c55037247c787bd7e19eb2c2949dc0"
],
"markers": "python_version >= '3.7'",
"version": "==0.16.3"
},
"httpx": {
"hashes": [
"sha256:9818458eb565bb54898ccb9b8b251a28785dd4a55afbc23d0eb410754fe7d0f9",
"sha256:a211fcce9b1254ea24f0cd6af9869b3d29aba40154e947d2a07bb499b3e310d6"
],
"markers": "python_version >= '3.7'",
"version": "==0.23.3"
},
"hupper": {
"hashes": [
"sha256:15c11bd775d8f98095b745b4e658a17c25c86e3b73275cae896ac1c8d533cb18",
"sha256:2ae554e0fb7daf4cbd37a8c7e0419f6974614095a41a4529ad35fe3067b408a4"
],
"markers": "python_version >= '3.7'",
"version": "==1.11"
},
"idna": {
"hashes": [
"sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4",
"sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"
],
"version": "==3.4"
},
"itsdangerous": {
"hashes": [
"sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44",
"sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"
],
"markers": "python_version >= '3.7'",
"version": "==2.1.2"
},
"janus": {
"hashes": [
"sha256:2596ea5482711c1ee3ef2df6c290aaf370a13c55a007826e8f7c32d696d1d00a",
"sha256:df976f2cdcfb034b147a2d51edfc34ff6bfb12d4e2643d3ad0e10de058cb1612"
],
"markers": "python_version >= '3.7'",
"version": "==1.0.0"
},
"jinja2": {
"hashes": [
"sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852",
"sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"
],
"markers": "python_version >= '3.7'",
"version": "==3.1.2"
},
"markupsafe": {
"hashes": [
"sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed",
"sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc",
"sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2",
"sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460",
"sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7",
"sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0",
"sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1",
"sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa",
"sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03",
"sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323",
"sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65",
"sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013",
"sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036",
"sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f",
"sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4",
"sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419",
"sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2",
"sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619",
"sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a",
"sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a",
"sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd",
"sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7",
"sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666",
"sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65",
"sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859",
"sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625",
"sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff",
"sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156",
"sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd",
"sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba",
"sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f",
"sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1",
"sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094",
"sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a",
"sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513",
"sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed",
"sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d",
"sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3",
"sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147",
"sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c",
"sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603",
"sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601",
"sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a",
"sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1",
"sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d",
"sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3",
"sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54",
"sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2",
"sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6",
"sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"
],
"markers": "python_version >= '3.7'",
"version": "==2.1.2"
},
"mergedeep": {
"hashes": [
"sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8",
"sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"
],
"markers": "python_version >= '3.6'",
"version": "==1.3.4"
},
"openpyxl": {
"hashes": [
"sha256:0ab6d25d01799f97a9464630abacbb34aafecdcaa0ef3cba6d6b3499867d0355",
"sha256:e47805627aebcf860edb4edf7987b1309c1b3632f3750538ed962bbcc3bd7449"
],
"index": "pypi",
"version": "==3.0.10"
},
"pint": {
"hashes": [
"sha256:387cf04078dc7dfe4a708033baad54ab61d82ab06c4ee3d4922b1e45d5626067",
"sha256:68afe65665542ee3ec99f69f043b1d39bfe7c6d61b786940157138fd08b838fb"
],
"markers": "python_version >= '3.8'",
"version": "==0.20.1"
},
"pluggy": {
"hashes": [
"sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159",
"sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"
],
"markers": "python_version >= '3.6'",
"version": "==1.0.0"
},
"python-multipart": {
"hashes": [
"sha256:f7bb5f611fc600d15fa47b3974c8aa16e93724513b49b5f95c81e6624c83fa43"
],
"version": "==0.0.5"
},
"pyyaml": {
"hashes": [
"sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf",
"sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293",
"sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b",
"sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57",
"sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b",
"sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4",
"sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07",
"sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba",
"sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9",
"sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287",
"sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513",
"sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0",
"sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782",
"sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0",
"sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92",
"sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f",
"sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2",
"sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc",
"sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1",
"sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c",
"sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86",
"sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4",
"sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c",
"sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34",
"sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b",
"sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d",
"sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c",
"sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb",
"sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7",
"sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737",
"sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3",
"sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d",
"sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358",
"sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53",
"sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78",
"sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803",
"sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a",
"sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f",
"sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174",
"sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"
],
"markers": "python_version >= '3.6'",
"version": "==6.0"
},
"rfc3986": {
"extras": [
"idna2008"
],
"hashes": [
"sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835",
"sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"
],
"version": "==1.5.0"
},
"six": {
"hashes": [
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.16.0"
},
"sniffio": {
"hashes": [
"sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101",
"sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"
],
"markers": "python_version >= '3.7'",
"version": "==1.3.0"
},
"typing-extensions": {
"hashes": [
"sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa",
"sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"
],
"markers": "python_version >= '3.7'",
"version": "==4.4.0"
},
"uvicorn": {
"hashes": [
"sha256:a4e12017b940247f836bc90b72e725d7dfd0c8ed1c51eb365f5ba30d9f5127d8",
"sha256:c3ed1598a5668208723f2bb49336f4509424ad198d6ab2615b7783db58d919fd"
],
"markers": "python_version >= '3.7'",
"version": "==0.20.0"
}
},
"develop": {}
}
+29 -2
View File
@@ -2,15 +2,42 @@
Outil d'exploration et de téléchargement des données essentielles de la commande publique.
=> https://decp.info
=> [decp.info](https://decp.info)
Dépôts de code connexe :
## Installation et lancement
```shell
pipenv install
pipenv run scripts/start-datasette.sh
```
## Dépôts de code connexes
- [decp-table-schema-utils](https://github.com/ColinMaudry/decp-table-schema-utils) (traitement et publication des données)
- [decp-table-schema](https://github.com/ColinMaudry/decp-table-schema) (schéma de données tabulaire)
## Notes de version
### 1.5.0 (28/01/2023
- fixation des dépendances Python pour plus de stabilité en cas de réinstallation (Pipfile)
#### 1.4.1 (14/06/2021)
- ajout des traductions des opérations de filtrage à toutes les vues, pas seulement /db/decp
### 1.4.0 (14/06/2021)
- traduction des opérations de filtrage (ex : contains => contient)
- élargissement des menus de filtrage
- correction du titre de la page des notes de versions
### 1.3.0 (03/06/2021)
- utilisation de noms de colonnes plus lisibles dans l'application
- suppression des références à la licence et aux données source sur la page d'accueil
- correction des liens vers le code source
- correction de l'indentation des puces dans les notes de version
### 1.2.0 (28/05/2021)
- ajout d'une page "Notes de version"
+9 -3
View File
@@ -1,11 +1,17 @@
{
"db": {
"hash": "e7781c4da0df3983d9e8bfc09d513162302d787bff766e3cfee2dd5dcd272b85",
"size": 121118720,
"hash": "e9fe2958f1e9fb97d9b35868dd9985b127f36fb70b75a6f34a7e97769a1cb40d",
"size": 599478272,
"file": "datasette/db.db",
"tables": {
"decp": {
"count": 292374
"count": 603271
},
"decp-sans-titulaires": {
"count": 527600
},
"decp-titulaires": {
"count": 295857
}
}
}
+116 -1
View File
@@ -19,13 +19,128 @@ databases:
Marché publics et leurs titulaires, données équivalentes au <a href="https://139bercy.github.io/decp-docs/schemas/">format réglementaire</a>. Une ligne = un titulaire de marché, donc ces données ne sont pas adaptées pour travailler avec les montants de marché ou compter les marchés.
size: 40
download: https://www.data.gouv.fr/fr/datasets/r/8587fe77-fb31-4155-8753-f6a3c5e0f5c9
column_labels:
id: Identifiant
uid: Identifiant unique
acheteur.id: SIRET acheteur
acheteur.nom: Nom de l'acheteur
procedure: Procédure d'achat
nature: Nature
dureeMois: Durée du marché (mois)
dateNotification: Date de notification
datePublicationDonnees: Date de publication des données
montant: Montant
objet: Objet
codeCPV: Code CPV
formePrix: Forme du prix
lieuExecution.code: Code du lieu d'exécution
lieuExecution.typeCode: Code du lieu d'exécution (type)
lieuExecution.nom: Nom du lieu d'exécution
titulaire.id: Identifiant du titulaire
titulaire.typeIdentifiant: Identifiant du titulaire (type)
titulaire.denominationSociale: Nom du titulaire
objetModification: Objet de la modification
source: Source des données
donneesActuelles: Données actuelles ?
anomalies: Anomalies
operation_labels:
exact: est égal à
not: est différent de
contains: contient
endswith: finit par
startswith: commence par
gt: est supérieur à (>)
lt: est inférieur à (<)
lte: est inférieur ou égal à (<=)
gte: est supérieur ou égal à (>=)
isnull__1: est vide
notnull__1: n'est pas vide
decp-sans-titulaires:
title: Marchés publics sans leurs titulaires
description_html: Marchés publics sans les titulaires (pas de colonnes titulaire). Une ligne = un marché, donc ces données sont adaptées pour travailler avec les montants de marchés et compter les marchés.
size: 40
download: https://www.data.gouv.fr/fr/datasets/r/834c14dd-037c-4825-958d-0a841c4777ae
column_labels:
id: Identifiant
uid: Identifiant unique
acheteur.id: SIRET acheteur
acheteur.nom: Nom de l'acheteur
procedure: Procédure d'achat
nature: Nature
dureeMois: Durée du marché (mois)
dateNotification: Date de notification
datePublicationDonnees: Date de publication des données
montant: Montant
objet: Objet
codeCPV: Code CPV
formePrix: Forme du prix
lieuExecution.code: Code du lieu d'exécution
lieuExecution.typeCode: Code du lieu d'exécution (type)
lieuExecution.nom: Nom du lieu d'exécution
objetModification: Objet de la modification
source: Source des données
donneesActuelles: Données actuelles ?
anomalies: Anomalies
operation_labels:
exact: est égal à
not: est différent de
contains: contient
endswith: finit par
startswith: commence par
gt: est supérieur à (>)
lt: est inférieur à (<)
lte: est inférieur ou égal à (<=)
gte: est supérieur ou égal à (>=)
isnull__1: est vide
notnull__1: n'est pas vide
decp-titulaires:
title: Données sur les titulaires et géolocalisation
description_html: Données détaillées sur les titulaires, dont leur géolocalisation. Les colonnes <tt>formePrix</tt>, <tt>procedure</tt>, <tt>objetModification</tt> et <tt>datePublicationDonnees</tt> sont absentes. Une ligne = un titulaire de marché, donc ces données ne sont pas adaptées pour travailler avec les montants de marché ou compter les marchés.
description_html: Données détaillées sur les titulaires ayant un numéro SIRET, dont leur géolocalisation. Les colonnes <tt>formePrix</tt>, <tt>procedure</tt>, <tt>objetModification</tt> et <tt>datePublicationDonnees</tt> sont absentes. Une ligne = un titulaire de marché, donc ces données ne sont pas adaptées pour travailler avec les montants de marché ou compter les marchés.
size: 40
download: https://www.data.gouv.fr/fr/datasets/r/25fcd9e6-ce5a-41a7-b6c0-f140abb2a060
column_labels:
id: Identifiant
uid: Identifiant unique
acheteur.id: SIRET acheteur
acheteur.nom: Nom de l'acheteur
procedure: Procédure d'achat
nature: Nature
dureeMois: Durée du marché (mois)
dateNotification: Date de notification
datePublicationDonnees: Date de publication des données
montant: Montant
objet: Objet
codeCPV: Code CPV
formePrix: Forme du prix
lieuExecution.code: Code du lieu d'exécution
lieuExecution.typeCode: Code du lieu d'exécution (type)
lieuExecution.nom: Nom du lieu d'exécution
objetModification: Objet de la modification
source: Source des données
donneesActuelles: Données actuelles ?
anomalies: Anomalies
codeAPE: Code APE
departement: Département
categorie: Catégorie
categorieJuridique: Catégorie juridique
categorieJuridiqueLibelle1: Catégorie juridique niveau 1
categorieJuridiqueLibelle2: Catégorie juridique niveau 2
etatEtablissement: État établissement
etatEntreprise: État entreprise
longitude: Longitude
latitude: Latitude
titulaire.id: Identifiant du titulaire
titulaire.typeIdentifiant: Identifiant du titulaire (type)
titulaire.denominationSociale: Nom du titulaire
operation_labels:
exact: est égal à
not: est différent de
contains: contient
endswith: finit par
startswith: commence par
gt: est supérieur à (>)
lt: est inférieur à (<)
lte: est inférieur ou égal à (<=)
gte: est supérieur ou égal à (>=)
isnull__1: est vide
notnull__1: n'est pas vide
+1 -2
View File
@@ -7,6 +7,5 @@
"force_https_urls": 1,
"allow_facet": "off",
"suggest_facets": "off",
"template_debug": 1,
"hash_urls": 1
"template_debug": 1
}
+12
View File
@@ -81,6 +81,18 @@ td.col-longitude,th.col-longitude,td.col-latitude,th.col-latitude {
}
.versions ul ul {
margin-left: 22px;
}
div.select-wrapper {
width: 160px;
}
div.select-wrapper.filter-op {
width: 160px;
}
/*
Flaticon icon font: Flaticon
+1 -1
View File
@@ -13,7 +13,7 @@ Propulsé par <a href="https://datasette.io/" title="Datasette v{{ datasette_ver
<a href="{{ metadata.source_url }}">
{% endif %}{{ metadata.source or metadata.source_url }}{% if metadata.source_url %}</a>{% endif %}
{% endif %}
&middot; Code source : <a href="https://github.com/ColinMaudry/decp-table-schema-utils">Github</a>
&middot; Code source : <a href="https://github.com/ColinMaudry/decp.info">Github</a>
{% if metadata.about or metadata.about_url %}&middot;
Plus d'informations : {% if metadata.about_url %}
<a href="{{ metadata.about_url }}">
+3 -3
View File
@@ -6,12 +6,12 @@
{% for column in display_columns %}
<th class="col-{{ column.name|to_css_class }}" scope="col" data-column="{{ column.name }}" data-column-type="{{ column.type }}" data-column-not-null="{{ column.notnull }}" data-is-pk="{% if column.is_pk %}1{% else %}0{% endif %}">
{% if not column.sortable %}
{{ column.name }}
{{ metadata.column_labels[column.name] }}
{% else %}
{% if column.name == sort %}
<a href="{{ path_with_replaced_args(request, {'_sort_desc': column.name, '_sort': None, '_next': None}) }}" rel="nofollow">{{ column.name }}&nbsp;</a>
<a href="{{ path_with_replaced_args(request, {'_sort_desc': column.name, '_sort': None, '_next': None}) }}" rel="nofollow">{{ metadata.column_labels[column.name] }}&nbsp;</a>
{% else %}
<a href="{{ path_with_replaced_args(request, {'_sort': column.name, '_sort_desc': None, '_next': None}) }}" rel="nofollow">{{ column.name }}{% if column.name == sort_desc %}&nbsp;▲{% endif %}</a>
<a href="{{ path_with_replaced_args(request, {'_sort': column.name, '_sort_desc': None, '_next': None}) }}" rel="nofollow">{{ metadata.column_labels[column.name] }}{% if column.name == sort_desc %}&nbsp;▲{% endif %}</a>
{% endif %}
{% endif %}
</th>
+9
View File
@@ -13,6 +13,15 @@
{% endfor %}
{% block extra_head %}{% endblock %}
<meta name="twitter:card" content="summary"></meta>
<meta name="twitter:creator" content="@col1m" />
<meta name="author" content="Colin Maudry" />
<meta property="og:type" content="website"/>
<meta property="og:title" content="decp.info : exploration et téléchargement des données des marchés publics" />
<meta name="description" property="og:description" content="decp.info vous permet de filtrer et trier les données sur les marchés publics français et de télécharger le résultat sous la forme d'un fichier que vous pourrez ouvrir dans un logiciel de tableur. Outil gratuit et libre." />
<meta name="image" property="og:image" content="https://decp.info/static/images/capture.png" />
<link rel="shortcut icon" href="/static/icons/icon-192x192.png" />
<!-- Matomo -->
+2 -2
View File
@@ -7,8 +7,8 @@
{% block content %}
<h1>{{ metadata.title or "Datasette" }}{% if private %} 🔒{% endif %}</h1>
{% block description_source_license %}{% include "_description_source_license.html" %}{% endblock %}
<!-- {% block description_source_license %}{% include "_description_source_license.html" %}{% endblock %}
-->
<p><a class="explore nodec" href="/db"><i class="flaticon-magnifying-glass"></i></a> <a class="explore" href="/db">Explorer les données</a></p>
<p><a class="explore nodec" href="https://teamopendata.org/t/decp-info-les-donnees-de-la-commande-publique-pour-tous-questions-reponses-discussions/2948"><i class="flaticon-chat-2"></i></a> <a href="https://teamopendata.org/t/decp-info-les-donnees-de-la-commande-publique-pour-tous-questions-reponses-discussions/2948">Présentation / FAQ / discussions</a></p>
+33 -2
View File
@@ -1,5 +1,5 @@
{% extends "base.html" %}
{% block title %}Mentions légales{% endblock %}
{% block title %}Notes de version{% endblock %}
{% block nav %}
<p class="crumbs">
<a href="{{ urls.instance() }}">accueil</a>
@@ -8,8 +8,39 @@
{% endblock %}
{% block content %}
<div style="max-width: 700px;margin:auto">
<div style="max-width: 700px;margin:auto" class="versions">
<h1>Notes de version</h1>
<h3 id="14114062021">1.4.1 (14/06/2021)</h3>
<ul>
<li>ajout des traductions des opérations de filtrage à toutes les vues, pas seulement /db/decp</li>
</ul>
<h3 id="14014062021">1.4.0 (14/06/2021)</h3>
<ul>
<li>traduction des opérations de filtrage (ex : contains => contient)</li>
<li>élargissement des menus de filtrage</li>
<li>correction du titre de la page des notes de versions</li>
</ul>
<h3 id="13003062021">1.3.0 (03/06/2021)</h3>
<ul>
<li>utilisation de noms de colonnes plus lisibles dans l'application</li>
<li>suppression des références à la licence et aux données source sur la page d'accueil</li>
<li>correction des liens vers le code source</li>
<li>correction de l'indentation des puces dans les notes de version</li>
</ul>
<h3 id="12028052021">1.2.0 (28/05/2021)</h3>
<ul>
+11 -7
View File
@@ -34,7 +34,7 @@
style="color: #666" xmlns="http://www.w3.org/2000/svg"
width="28" height="28" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<title id="actions-menu-links-title">Actions</title>
<title id="actions-menu-links-title">Actions</title>
<circle cx="12" cy="12" r="3"></circle>
<path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path>
</svg></summary>
@@ -54,7 +54,7 @@
{% if filtered_table_rows_count or human_description_en %}
<h4>{% if filtered_table_rows_count or filtered_table_rows_count == 0 %}{{ "{:,}".format(filtered_table_rows_count) }} ligne{% if filtered_table_rows_count == 1 %}{% else %}s{% endif %}{% endif %}
{% if human_description_en %}{{ human_description_en }}{% endif %}
<!-- {% if human_description_en %}{{ human_description_en }}{% endif %} -->
</h4>
{% endif %}
@@ -68,13 +68,15 @@
<select name="_filter_column_{{ loop.index }}">
<option value="">- supprimer le filtre -</option>
{% for c in filter_columns %}
<option{% if c == column %} selected{% endif %}>{{ c }}</option>
<option{% if c == column %} selected{% endif %} value="{{ c }}">{{ metadata.column_labels[c] }}</option>
{% endfor %}
</select>
</div><div class="select-wrapper filter-op">
<select name="_filter_op_{{ loop.index }}">
{% for key, display, no_argument in filters.lookups() %}
<option value="{{ key }}{% if no_argument %}__1{% endif %}"{% if key == lookup %} selected{% endif %}>{{ display }}</option>
{% if metadata.operation_labels[key] %}
<option value="{{ key }}{% if no_argument %}__1{% endif %}"{% if key == lookup %} selected{% endif %}>{{ metadata.operation_labels[key] }}</option>
{% endif %}
{% endfor %}
</select>
</div><input type="text" name="_filter_value_{{ loop.index }}" class="filter-value" value="{{ value }}">
@@ -85,13 +87,15 @@
<select name="_filter_column">
<option value="">- colonne -</option>
{% for column in filter_columns %}
<option>{{ column }}</option>
<option value="{{ column }}">{{ metadata.column_labels[column] }}</option>
{% endfor %}
</select>
</div><div class="select-wrapper filter-op">
<select name="_filter_op">
{% for key, display, no_argument in filters.lookups() %}
<option value="{{ key }}{% if no_argument %}__1{% endif %}"{% if key == lookup %} selected{% endif %}>{{ display }}</option>
{% if metadata.operation_labels[key] %}
<option value="{{ key }}{% if no_argument %}__1{% endif %}"{% if key == lookup %} selected{% endif %}>{{ metadata.operation_labels[key] }}</option>
{% endif %}
{% endfor %}
</select>
</div><input type="text" name="_filter_value" class="filter-value">
@@ -196,7 +200,7 @@
Options CSV :
<label><input type="checkbox" name="_dl"> télécharger le fichier</label>
{% if expandable_columns %}<label><input type="checkbox" name="_labels" checked> récupérer les libellés</label>{% endif %}
{% if next_url and config.allow_csv_stream %}<label><input type="checkbox" name="_stream"> stream de lignes</label>{% endif %}
{% if next_url %}<label><input type="checkbox" name="_stream"> stream de lignes</label>{% endif %}
<input type="submit" value="Exporter le CSV">
{% for key, value in url_csv_hidden_args %}
<input type="hidden" name="{{ key }}" value="{{ value }}">
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
echo "Get data..."
echo "Getting data from data.gouv.fr..."
wget -nv https://www.data.gouv.fr/fr/datasets/r/c6b08d03-7aa4-4132-b5b2-fd76633feecc -O datasette/db.db
datasette inspect datasette/*.db --inspect-file=datasette/inspect-data.json