Flask setup
This commit is contained in:
parent
1a6d42f385
commit
6a5d3d57cf
13
Pipfile
13
Pipfile
@ -4,20 +4,23 @@ verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[packages]
|
||||
tornado = "==5.0.2"
|
||||
webassets = "==0.12.1"
|
||||
Unipath = "==1.1"
|
||||
tornado = "*"
|
||||
webassets = "*"
|
||||
Unipath = "*"
|
||||
wtforms-tornado = "*"
|
||||
pendulum = "*"
|
||||
redis = "*"
|
||||
sqlalchemy = "*"
|
||||
alembic = "*"
|
||||
"psycopg2-binary" = "*"
|
||||
flask = "*"
|
||||
flask-sqlalchemy = "*"
|
||||
flask-assets = "*"
|
||||
|
||||
[dev-packages]
|
||||
bandit = "*"
|
||||
pytest = "==3.6.0"
|
||||
pytest-tornado = "==0.5.0"
|
||||
pytest = "*"
|
||||
pytest-tornado = "*"
|
||||
ipython = "*"
|
||||
ipdb = "*"
|
||||
pylint = "*"
|
||||
|
196
Pipfile.lock
generated
196
Pipfile.lock
generated
@ -1,7 +1,7 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "7cd87f2c2c42bc776a6aa6f72fcbb8b30d4e703e50b6480ce1c8ace6ae6dd0a4"
|
||||
"sha256": "2ee6dd90ff3784e7b1781c680d690ac59118b4e3d72e8da3adf9e93d6e512bc7"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
@ -24,6 +24,49 @@
|
||||
"index": "pypi",
|
||||
"version": "==1.0.0"
|
||||
},
|
||||
"click": {
|
||||
"hashes": [
|
||||
"sha256:29f99fc6125fbc931b758dc053b3114e55c77a6e4c6c3a2674a2dc986016381d",
|
||||
"sha256:f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b"
|
||||
],
|
||||
"version": "==6.7"
|
||||
},
|
||||
"flask": {
|
||||
"hashes": [
|
||||
"sha256:2271c0070dbcb5275fad4a82e29f23ab92682dc45f9dfbc22c02ba9b9322ce48",
|
||||
"sha256:a080b744b7e345ccfcbc77954861cb05b3c63786e93f2b3875e0913d44b43f05"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.0.2"
|
||||
},
|
||||
"flask-assets": {
|
||||
"hashes": [
|
||||
"sha256:6031527b89fb3509d1581d932affa5a79dd348cfffb58d0aef99a43461d47847"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.12"
|
||||
},
|
||||
"flask-sqlalchemy": {
|
||||
"hashes": [
|
||||
"sha256:3bc0fac969dd8c0ace01b32060f0c729565293302f0c4269beed154b46bec50b",
|
||||
"sha256:5971b9852b5888655f11db634e87725a9031e170f37c0ce7851cf83497f56e53"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.3.2"
|
||||
},
|
||||
"itsdangerous": {
|
||||
"hashes": [
|
||||
"sha256:cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519"
|
||||
],
|
||||
"version": "==0.24"
|
||||
},
|
||||
"jinja2": {
|
||||
"hashes": [
|
||||
"sha256:74c935a1b8bb9a3947c50a54766a969d4846290e1e788ea44c1392163723c3bd",
|
||||
"sha256:f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4"
|
||||
],
|
||||
"version": "==2.10"
|
||||
},
|
||||
"mako": {
|
||||
"hashes": [
|
||||
"sha256:4e02fde57bd4abb5ec400181e4c314f56ac3e49ba4fb8b0d50bba18cb27d25ae"
|
||||
@ -38,19 +81,22 @@
|
||||
},
|
||||
"pendulum": {
|
||||
"hashes": [
|
||||
"sha256:0643d45824e6789b88187728337dfa6075a0233f6976c2abefba00d064156309",
|
||||
"sha256:3cc271195d8054bec06f54ff7d56ea6c2e2b5ad5dd6b532d787b34d2cabe6a65",
|
||||
"sha256:544e44d8a92954e5ef4db4fa8b662d3282f2ac7b7c2cbf4227dc193ba78b9e1e",
|
||||
"sha256:846478ab5f7480b3d850a09e44fe03830d448633c84f0b1066615ff6c34293aa",
|
||||
"sha256:8bb523f759daeecfc0649369f198cbeb27a6608347354f4f847d21d579003db6",
|
||||
"sha256:a449142063100f1b3c1119453c7569667c9ba79897305a1c50ca83a8c790f1e4",
|
||||
"sha256:b7ff156b3d7cccbdeeb63465578d9a4e6f57d463f6ff6d4474254208d08f8353",
|
||||
"sha256:d8822a592bbc16576c44ec4625bff9187ed9b649d47714e4905a55adc5b25339",
|
||||
"sha256:dd45c7b349faab69714df9835cdf8bf8bce50bf6fc471419d3b23ba33e1915a5",
|
||||
"sha256:fac088b637b5db5a047a0e89194d8c3c9e9e9ce1665089240003bb7c05b92536"
|
||||
"sha256:0ec5371949e147753661e1e98721273170638034dfceb578f29d69d93d3d474b",
|
||||
"sha256:10ccdc8c6d004ba97883dd0f57503963ddf6cb83e849a16c4675ba18da657564",
|
||||
"sha256:37bb54bcbb9d7fccd725f3fda69702e51ab3de9971b4c1c986505fbb3bc58bed",
|
||||
"sha256:51803352e40778f914ff7af3494788b404260b415d9a9d607a8cf73e5e120994",
|
||||
"sha256:5de295ca85761d9adf4020e6f3bed6eb933846ccf23b74e04b071f6d677f11a4",
|
||||
"sha256:73f850265adcf0986fcc0af83ae9c8c5a7ca3c4a2525184110478a8bfd1a77b3",
|
||||
"sha256:8fe289356322f6b0f4510082b4c412a1496a64054a37ae86b24411868a1901c6",
|
||||
"sha256:c0401482dfa9fbd7005f2dfbf54ec61fd2c8130df37651ac2a3722d1f049ae4e",
|
||||
"sha256:c358ee65ddb99c2b1bf301458e43ed09ff6d40465bcc9928265246912fad4d0f",
|
||||
"sha256:d07962450e808556b3e6209a5830e2bbf8c7747129580c3b5b09e641f72617ab",
|
||||
"sha256:dc05e6186c9c3b9969326aded9cba7a796744918581b25457f5148a5e3475d55",
|
||||
"sha256:ee9466eea403e8e308c284d3055e285b97905a5ffb1566df0ef200b4f39c0f15",
|
||||
"sha256:f7fa6220251a636112721e8158b9dd59018d818ec121047900934d80864eca62"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.0.2"
|
||||
"version": "==2.0.3"
|
||||
},
|
||||
"psycopg2-binary": {
|
||||
"hashes": [
|
||||
@ -106,7 +152,7 @@
|
||||
"sha256:1d936da41ee06216d89fdc7ead1ee9a5da2811a8787515a976b646e110c3f622",
|
||||
"sha256:e4ef42e82b0b493c5849eed98b5ab49d6767caf982127e9a33167f1153b36cc5"
|
||||
],
|
||||
"markers": "python_version != '3.1.*' and python_version != '3.2.*' and python_version != '3.0.*' and python_version != '3.3.*' and python_version >= '2.7'",
|
||||
"markers": "python_version != '3.0.*' and python_version != '3.1.*' and python_version != '3.2.*' and python_version >= '2.7' and python_version != '3.3.*'",
|
||||
"version": "==2018.5"
|
||||
},
|
||||
"redis": {
|
||||
@ -133,14 +179,16 @@
|
||||
},
|
||||
"tornado": {
|
||||
"hashes": [
|
||||
"sha256:1b83d5c10550f2653380b4c77331d6f8850f287c4f67d7ce1e1c639d9222fbc7",
|
||||
"sha256:408d129e9d13d3c55aa73f8084aa97d5f90ed84132e38d6932e63a67d5bec563",
|
||||
"sha256:88ce0282cce70df9045e515f578c78f1ebc35dcabe1d70f800c3583ebda7f5f5",
|
||||
"sha256:ba9fbb249ac5390bff8a1d6aa4b844fd400701069bda7d2e380dfe2217895101",
|
||||
"sha256:c050089173c2e9272244bccfb6a8615fb9e53b79420a5551acfa76094ecc3111"
|
||||
"sha256:1c0816fc32b7d31b98781bd8ebc7a9726d7dce67407dc353a2e66e697e138448",
|
||||
"sha256:4f66a2172cb947387193ca4c2c3e19131f1c70fa8be470ddbbd9317fd0801582",
|
||||
"sha256:5327ba1a6c694e0149e7d9126426b3704b1d9d520852a3e4aa9fc8fe989e4046",
|
||||
"sha256:6a7e8657618268bb007646b9eae7661d0b57f13efc94faa33cd2588eae5912c9",
|
||||
"sha256:a9b14804783a1d77c0bd6c66f7a9b1196cbddfbdf8bceb64683c5ae60bd1ec6f",
|
||||
"sha256:c58757e37c4a3172949c99099d4d5106e4d7b63aa0617f9bb24bfbff712c7866",
|
||||
"sha256:d8984742ce86c0855cccecd5c6f54a9f7532c983947cff06f3a0e2115b47f85c"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==5.0.2"
|
||||
"version": "==5.1"
|
||||
},
|
||||
"unipath": {
|
||||
"hashes": [
|
||||
@ -157,6 +205,13 @@
|
||||
"index": "pypi",
|
||||
"version": "==0.12.1"
|
||||
},
|
||||
"werkzeug": {
|
||||
"hashes": [
|
||||
"sha256:c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c",
|
||||
"sha256:d5da73735293558eb1651ee2fddc4d0dedcfa06538b8813a2e20011583c9e49b"
|
||||
],
|
||||
"version": "==0.14.1"
|
||||
},
|
||||
"wtforms": {
|
||||
"hashes": [
|
||||
"sha256:0cdbac3e7f6878086c334aa25dc5a33869a3954e9d1e015130d65a69309b3b61",
|
||||
@ -197,10 +252,10 @@
|
||||
},
|
||||
"astroid": {
|
||||
"hashes": [
|
||||
"sha256:0a0c484279a5f08c9bcedd6fa9b42e378866a7dcc695206b92d59dc9f2d9760d",
|
||||
"sha256:218e36cf8d98a42f16214e8670819ce307fa707d1dcf7f9af84c7aede1febc7f"
|
||||
"sha256:a48b57ede295c3188ef5c84273bc2a8eadc46e4cbb001eae0d49fb5d1fabbb19",
|
||||
"sha256:d066cdeec5faeb51a4be5010da612680653d844b57afd86a5c8315f2f801b4cc"
|
||||
],
|
||||
"version": "==2.0.1"
|
||||
"version": "==2.0.2"
|
||||
},
|
||||
"atomicwrites": {
|
||||
"hashes": [
|
||||
@ -279,7 +334,7 @@
|
||||
"sha256:0e9a1227a3a0f3297a485715e72ee6eb77081b17b629367042b586e38c03c867",
|
||||
"sha256:b4840807a94a3bad0217d6ed3f9b65a1cc6e1db1c99e1184673056ae2c0a4c4d"
|
||||
],
|
||||
"markers": "python_version != '3.2.*' and python_version != '3.0.*' and python_version >= '2.7' and python_version != '3.1.*'",
|
||||
"markers": "python_version != '3.1.*' and python_version != '3.2.*' and python_version >= '2.7' and python_version != '3.0.*'",
|
||||
"version": "==0.8.17"
|
||||
},
|
||||
"gitdb2": {
|
||||
@ -305,11 +360,11 @@
|
||||
},
|
||||
"ipython": {
|
||||
"hashes": [
|
||||
"sha256:a0c96853549b246991046f32d19db7140f5b1a644cc31f0dc1edc86713b7676f",
|
||||
"sha256:eca537aa61592aca2fef4adea12af8e42f5c335004dfa80c78caf80e8b525e5c"
|
||||
"sha256:007dcd929c14631f83daff35df0147ea51d1af420da303fd078343878bd5fb62",
|
||||
"sha256:b0f2ef9eada4a68ef63ee10b6dde4f35c840035c50fd24265f8052c98947d5a4"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==6.4.0"
|
||||
"version": "==6.5.0"
|
||||
},
|
||||
"ipython-genutils": {
|
||||
"hashes": [
|
||||
@ -324,7 +379,7 @@
|
||||
"sha256:b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8",
|
||||
"sha256:ec9ef8f4a9bc6f71eec99e1806bfa2de401650d996c59330782b89a5555c1497"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version != '3.1.*' and python_version != '3.3.*' and python_version != '3.0.*' and python_version != '3.2.*'",
|
||||
"markers": "python_version != '3.3.*' and python_version >= '2.7' and python_version != '3.1.*' and python_version != '3.0.*' and python_version != '3.2.*'",
|
||||
"version": "==4.3.4"
|
||||
},
|
||||
"jedi": {
|
||||
@ -377,11 +432,11 @@
|
||||
},
|
||||
"more-itertools": {
|
||||
"hashes": [
|
||||
"sha256:2b6b9893337bfd9166bee6a62c2b0c9fe7735dcf85948b387ec8cba30e85d8e8",
|
||||
"sha256:6703844a52d3588f951883005efcf555e49566a48afd4db4e965d69b883980d3",
|
||||
"sha256:a18d870ef2ffca2b8463c0070ad17b5978056f403fb64e3f15fe62a52db21cc0"
|
||||
"sha256:c187a73da93e7a8acc0001572aebc7e3c69daf7bf6881a2cea10650bd4420092",
|
||||
"sha256:c476b5d3a34e12d40130bc2f935028b5f636df8f372dc2c1c01dc19681b2039e",
|
||||
"sha256:fcbfeaea0be121980e15bc97b3817b5202ca73d0eae185b4550cbfce2a3ebb3d"
|
||||
],
|
||||
"version": "==4.2.0"
|
||||
"version": "==4.3.0"
|
||||
},
|
||||
"parso": {
|
||||
"hashes": [
|
||||
@ -398,10 +453,10 @@
|
||||
},
|
||||
"pbr": {
|
||||
"hashes": [
|
||||
"sha256:754e766b4f4bad3aa68cfd532456298da1aa39375da8748392dbae90860d5f18",
|
||||
"sha256:c6bddbad814f23c7faaf88d8a186e9965243cc6206a23361b73023648e645794"
|
||||
"sha256:1b8be50d938c9bb75d0eaf7eda111eec1bf6dc88a62a6412e33bf077457e0f45",
|
||||
"sha256:b486975c0cafb6beeb50ca0e17ba047647f229087bd74e37f4a7e2cac17d2caa"
|
||||
],
|
||||
"version": "==4.1.1"
|
||||
"version": "==4.2.0"
|
||||
},
|
||||
"pexpect": {
|
||||
"hashes": [
|
||||
@ -420,12 +475,11 @@
|
||||
},
|
||||
"pluggy": {
|
||||
"hashes": [
|
||||
"sha256:7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff",
|
||||
"sha256:d345c8fe681115900d6da8d048ba67c25df42973bda370783cd58826442dcd7c",
|
||||
"sha256:e160a7fcf25762bb60efc7e171d4497ff1d8d2d75a3d0df7a21b76821ecbf5c5"
|
||||
"sha256:6e3836e39f4d36ae72840833db137f7b7d35105079aee6ec4a62d9f80d594dd1",
|
||||
"sha256:95eb8364a4708392bae89035f45341871286a333f749c3141c20573d2b3876e1"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version != '3.1.*' and python_version != '3.3.*' and python_version != '3.0.*' and python_version != '3.2.*'",
|
||||
"version": "==0.6.0"
|
||||
"markers": "python_version != '3.3.*' and python_version >= '2.7' and python_version != '3.1.*' and python_version != '3.0.*' and python_version != '3.2.*'",
|
||||
"version": "==0.7.1"
|
||||
},
|
||||
"prompt-toolkit": {
|
||||
"hashes": [
|
||||
@ -447,7 +501,7 @@
|
||||
"sha256:3fd59af7435864e1a243790d322d763925431213b6b8529c6ca71081ace3bbf7",
|
||||
"sha256:e31fb2767eb657cbde86c454f02e99cb846d3cd9d61b318525140214fdc0e98e"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version != '3.1.*' and python_version != '3.3.*' and python_version != '3.0.*' and python_version != '3.2.*'",
|
||||
"markers": "python_version != '3.3.*' and python_version >= '2.7' and python_version != '3.1.*' and python_version != '3.0.*' and python_version != '3.2.*'",
|
||||
"version": "==1.5.4"
|
||||
},
|
||||
"pygments": {
|
||||
@ -459,19 +513,19 @@
|
||||
},
|
||||
"pylint": {
|
||||
"hashes": [
|
||||
"sha256:2c90a24bee8fae22ac98061c896e61f45c5b73c2e0511a4bf53f99ba56e90434",
|
||||
"sha256:454532779425098969b8f54ab0f056000b883909f69d05905ea114df886e3251"
|
||||
"sha256:0edfec21270725c5aa8e8d8d06ef5666f766e0e748ed2f1ab23624727303b935",
|
||||
"sha256:4cadcaa4f1fb19123d4baa758d9fbe6286c5b3aa513af6ea42a2d51d405db205"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.0.1"
|
||||
"version": "==2.1.0"
|
||||
},
|
||||
"pytest": {
|
||||
"hashes": [
|
||||
"sha256:39555d023af3200d004d09e51b4dd9fdd828baa863cded3fd6ba2f29f757ae2d",
|
||||
"sha256:c76e93f3145a44812955e8d46cdd302d8a45fbfc7bf22be24fe231f9d8d8853a"
|
||||
"sha256:8214ab8446104a1d0c17fbd218ec6aac743236c6ffbe23abc038e40213c60b88",
|
||||
"sha256:e2b2c6e1560b8f9dc8dd600b0923183fbd68ba3d9bdecde04467be6dd296a384"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==3.6.0"
|
||||
"version": "==3.7.0"
|
||||
},
|
||||
"pytest-tornado": {
|
||||
"hashes": [
|
||||
@ -547,14 +601,16 @@
|
||||
},
|
||||
"tornado": {
|
||||
"hashes": [
|
||||
"sha256:1b83d5c10550f2653380b4c77331d6f8850f287c4f67d7ce1e1c639d9222fbc7",
|
||||
"sha256:408d129e9d13d3c55aa73f8084aa97d5f90ed84132e38d6932e63a67d5bec563",
|
||||
"sha256:88ce0282cce70df9045e515f578c78f1ebc35dcabe1d70f800c3583ebda7f5f5",
|
||||
"sha256:ba9fbb249ac5390bff8a1d6aa4b844fd400701069bda7d2e380dfe2217895101",
|
||||
"sha256:c050089173c2e9272244bccfb6a8615fb9e53b79420a5551acfa76094ecc3111"
|
||||
"sha256:1c0816fc32b7d31b98781bd8ebc7a9726d7dce67407dc353a2e66e697e138448",
|
||||
"sha256:4f66a2172cb947387193ca4c2c3e19131f1c70fa8be470ddbbd9317fd0801582",
|
||||
"sha256:5327ba1a6c694e0149e7d9126426b3704b1d9d520852a3e4aa9fc8fe989e4046",
|
||||
"sha256:6a7e8657618268bb007646b9eae7661d0b57f13efc94faa33cd2588eae5912c9",
|
||||
"sha256:a9b14804783a1d77c0bd6c66f7a9b1196cbddfbdf8bceb64683c5ae60bd1ec6f",
|
||||
"sha256:c58757e37c4a3172949c99099d4d5106e4d7b63aa0617f9bb24bfbff712c7866",
|
||||
"sha256:d8984742ce86c0855cccecd5c6f54a9f7532c983947cff06f3a0e2115b47f85c"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==5.0.2"
|
||||
"version": "==5.1"
|
||||
},
|
||||
"traitlets": {
|
||||
"hashes": [
|
||||
@ -563,6 +619,42 @@
|
||||
],
|
||||
"version": "==4.3.2"
|
||||
},
|
||||
"typed-ast": {
|
||||
"hashes": [
|
||||
"sha256:0948004fa228ae071054f5208840a1e88747a357ec1101c17217bfe99b299d58",
|
||||
"sha256:10703d3cec8dcd9eef5a630a04056bbc898abc19bac5691612acba7d1325b66d",
|
||||
"sha256:1f6c4bd0bdc0f14246fd41262df7dfc018d65bb05f6e16390b7ea26ca454a291",
|
||||
"sha256:25d8feefe27eb0303b73545416b13d108c6067b846b543738a25ff304824ed9a",
|
||||
"sha256:29464a177d56e4e055b5f7b629935af7f49c196be47528cc94e0a7bf83fbc2b9",
|
||||
"sha256:2e214b72168ea0275efd6c884b114ab42e316de3ffa125b267e732ed2abda892",
|
||||
"sha256:3e0d5e48e3a23e9a4d1a9f698e32a542a4a288c871d33ed8df1b092a40f3a0f9",
|
||||
"sha256:519425deca5c2b2bdac49f77b2c5625781abbaf9a809d727d3a5596b30bb4ded",
|
||||
"sha256:57fe287f0cdd9ceaf69e7b71a2e94a24b5d268b35df251a88fef5cc241bf73aa",
|
||||
"sha256:668d0cec391d9aed1c6a388b0d5b97cd22e6073eaa5fbaa6d2946603b4871efe",
|
||||
"sha256:68ba70684990f59497680ff90d18e756a47bf4863c604098f10de9716b2c0bdd",
|
||||
"sha256:6de012d2b166fe7a4cdf505eee3aaa12192f7ba365beeefaca4ec10e31241a85",
|
||||
"sha256:79b91ebe5a28d349b6d0d323023350133e927b4de5b651a8aa2db69c761420c6",
|
||||
"sha256:8550177fa5d4c1f09b5e5f524411c44633c80ec69b24e0e98906dd761941ca46",
|
||||
"sha256:898f818399cafcdb93cbbe15fc83a33d05f18e29fb498ddc09b0214cdfc7cd51",
|
||||
"sha256:94b091dc0f19291adcb279a108f5d38de2430411068b219f41b343c03b28fb1f",
|
||||
"sha256:a26863198902cda15ab4503991e8cf1ca874219e0118cbf07c126bce7c4db129",
|
||||
"sha256:a8034021801bc0440f2e027c354b4eafd95891b573e12ff0418dec385c76785c",
|
||||
"sha256:bc978ac17468fe868ee589c795d06777f75496b1ed576d308002c8a5756fb9ea",
|
||||
"sha256:c05b41bc1deade9f90ddc5d988fe506208019ebba9f2578c622516fd201f5863",
|
||||
"sha256:c9b060bd1e5a26ab6e8267fd46fc9e02b54eb15fffb16d112d4c7b1c12987559",
|
||||
"sha256:edb04bdd45bfd76c8292c4d9654568efaedf76fe78eb246dde69bdb13b2dad87",
|
||||
"sha256:f19f2a4f547505fe9072e15f6f4ae714af51b5a681a97f187971f50c283193b6"
|
||||
],
|
||||
"version": "==1.1.0"
|
||||
},
|
||||
"typing": {
|
||||
"hashes": [
|
||||
"sha256:3a887b021a77b292e151afb75323dea88a7bc1b3dfa92176cff8e44c8b68bddf",
|
||||
"sha256:b2c689d54e1144bbcfd191b0832980a21c2dbcf7b5ff7a66248a60c90e951eb8",
|
||||
"sha256:d400a9344254803a2368533e4533a4200d21eb7b6b729c173bc38201a74db3f2"
|
||||
],
|
||||
"version": "==3.6.4"
|
||||
},
|
||||
"watchdog": {
|
||||
"hashes": [
|
||||
"sha256:7e65882adb7746039b6f3876ee174952f8eaaa34491ba34333ddf1fe35de4162"
|
||||
|
12
app.py
12
app.py
@ -1,15 +1,11 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import tornado.ioloop
|
||||
|
||||
from atst.app import make_app, make_deps, make_config
|
||||
from atst.app import make_app, make_config
|
||||
|
||||
config = make_config()
|
||||
deps = make_deps(config)
|
||||
app = make_app(config, deps)
|
||||
app = make_app(config)
|
||||
|
||||
if __name__ == "__main__":
|
||||
port = int(config["default"]["PORT"])
|
||||
app.listen(port)
|
||||
port = int(config["PORT"])
|
||||
app.run(port=port)
|
||||
print("Listening on http://localhost:%i" % port)
|
||||
tornado.ioloop.IOLoop.current().start()
|
||||
|
288
atst/app.py
288
atst/app.py
@ -1,160 +1,166 @@
|
||||
import os
|
||||
from configparser import ConfigParser
|
||||
import tornado.web
|
||||
from tornado.web import url
|
||||
from redis import StrictRedis
|
||||
from flask import Flask
|
||||
from unipath import Path
|
||||
|
||||
from atst.handlers.main import Main
|
||||
from atst.handlers.root import Root
|
||||
from atst.handlers.login_redirect import LoginRedirect
|
||||
from atst.handlers.workspaces import Workspaces
|
||||
from atst.handlers.workspace import Workspace
|
||||
from atst.handlers.workspace_members import WorkspaceMembers
|
||||
from atst.handlers.request import Request
|
||||
from atst.handlers.request_financial_verification import RequestFinancialVerification
|
||||
from atst.handlers.request_new import RequestNew
|
||||
from atst.handlers.request_submit import RequestsSubmit
|
||||
from atst.handlers.dev import Dev
|
||||
from atst.home import home
|
||||
from atst.api_client import ApiClient
|
||||
from atst.sessions import RedisSessions
|
||||
from atst import ui_modules
|
||||
from atst import ui_methods
|
||||
from atst.database import make_db
|
||||
from atst.database import db
|
||||
from atst.assets import assets
|
||||
from atst.routes import bp
|
||||
|
||||
ENV = os.getenv("TORNADO_ENV", "dev")
|
||||
|
||||
|
||||
def make_app(config, deps, **kwargs):
|
||||
def make_app(config):
|
||||
|
||||
routes = [
|
||||
url(r"/", Root, {"page": "root"}, name="root"),
|
||||
url(
|
||||
r"/login-redirect",
|
||||
LoginRedirect,
|
||||
{
|
||||
"sessions": deps["sessions"],
|
||||
"authnid_client": deps["authnid_client"],
|
||||
"db_session": deps["db_session"],
|
||||
},
|
||||
name="login_redirect",
|
||||
),
|
||||
url(r"/home", Main, {"page": "home"}, name="home"),
|
||||
url(r"/styleguide", Main, {"page": "styleguide"}, name="styleguide"),
|
||||
url(
|
||||
r"/workspaces/blank",
|
||||
Main,
|
||||
{"page": "workspaces_blank"},
|
||||
name="workspaces_blank",
|
||||
),
|
||||
url(
|
||||
r"/workspaces",
|
||||
Workspaces,
|
||||
{"page": "workspaces", "db_session": deps["db_session"]},
|
||||
name="workspaces",
|
||||
),
|
||||
url(
|
||||
r"/requests",
|
||||
Request,
|
||||
{"page": "requests", "db_session": deps["db_session"]},
|
||||
name="requests",
|
||||
),
|
||||
url(
|
||||
r"/requests/new",
|
||||
RequestNew,
|
||||
{
|
||||
"page": "requests_new",
|
||||
"db_session": deps["db_session"],
|
||||
},
|
||||
name="request_new",
|
||||
),
|
||||
url(
|
||||
r"/requests/new/([0-9])",
|
||||
RequestNew,
|
||||
{
|
||||
"page": "requests_new",
|
||||
"db_session": deps["db_session"],
|
||||
},
|
||||
name="request_form_new",
|
||||
),
|
||||
url(
|
||||
r"/requests/new/([0-9])/(\S+)",
|
||||
RequestNew,
|
||||
{
|
||||
"page": "requests_new",
|
||||
"db_session": deps["db_session"],
|
||||
},
|
||||
name="request_form_update",
|
||||
),
|
||||
url(
|
||||
r"/requests/submit/(\S+)",
|
||||
RequestsSubmit,
|
||||
{"db_session": deps["db_session"]},
|
||||
name="requests_submit",
|
||||
),
|
||||
# Dummy request/approval screen
|
||||
url(
|
||||
r"/request/approval",
|
||||
Main,
|
||||
{"page": "request_approval"},
|
||||
name="request_approval",
|
||||
),
|
||||
url(
|
||||
r"/requests/verify/(\S+)",
|
||||
RequestFinancialVerification,
|
||||
{
|
||||
"page": "financial_verification",
|
||||
"db_session": deps["db_session"],
|
||||
},
|
||||
name="financial_verification",
|
||||
),
|
||||
url(
|
||||
r"/requests/financial_verification_submitted",
|
||||
Main,
|
||||
{"page": "requests/financial_verification_submitted"},
|
||||
name="financial_verification_submitted",
|
||||
),
|
||||
url(r"/users", Main, {"page": "users"}, name="users"),
|
||||
url(r"/reports", Main, {"page": "reports"}, name="reports"),
|
||||
url(r"/calculator", Main, {"page": "calculator"}, name="calculator"),
|
||||
url(
|
||||
r"/workspaces/(\S+)/members", WorkspaceMembers, {}, name="workspace_members"
|
||||
),
|
||||
url(r"/workspaces/(\S+)/projects", Workspace, {}, name="workspace_projects"),
|
||||
url(r"/workspaces/123456/projects/789/edit", Main, {"page": "project_edit"}, name="project_edit"),
|
||||
url(r"/workspaces/123456/members/789/edit", Main, {"page": "member_edit"}, name="member_edit"),
|
||||
]
|
||||
parent_dir = Path().parent
|
||||
|
||||
if not ENV == "production":
|
||||
routes += [
|
||||
url(
|
||||
r"/login-dev",
|
||||
Dev,
|
||||
{
|
||||
"action": "login",
|
||||
"sessions": deps["sessions"],
|
||||
"db_session": deps["db_session"],
|
||||
},
|
||||
name="dev-login",
|
||||
app = Flask(
|
||||
__name__,
|
||||
template_folder=parent_dir.child("templates").absolute(),
|
||||
static_folder=parent_dir.child("static").absolute()
|
||||
)
|
||||
]
|
||||
app.config.update(config)
|
||||
|
||||
db.init_app(app)
|
||||
assets.init_app(app)
|
||||
|
||||
app.register_blueprint(bp)
|
||||
|
||||
app = tornado.web.Application(
|
||||
routes,
|
||||
login_url="/",
|
||||
template_path=home.child("templates"),
|
||||
static_path=home.child("static"),
|
||||
cookie_secret=config["default"]["COOKIE_SECRET"],
|
||||
debug=config["default"].getboolean("DEBUG"),
|
||||
ui_modules=ui_modules,
|
||||
ui_methods=ui_methods,
|
||||
**kwargs
|
||||
)
|
||||
app.config = config
|
||||
app.sessions = deps["sessions"]
|
||||
return app
|
||||
|
||||
|
||||
# def make_app(config, deps, **kwargs):
|
||||
# routes = [
|
||||
# url(r"/", Root, {"page": "root"}, name="root"),
|
||||
# url(
|
||||
# r"/login-redirect",
|
||||
# LoginRedirect,
|
||||
# {
|
||||
# "sessions": deps["sessions"],
|
||||
# "authnid_client": deps["authnid_client"],
|
||||
# "db_session": deps["db_session"],
|
||||
# },
|
||||
# name="login_redirect",
|
||||
# ),
|
||||
# url(r"/home", Main, {"page": "home"}, name="home"),
|
||||
# url(r"/styleguide", Main, {"page": "styleguide"}, name="styleguide"),
|
||||
# url(
|
||||
# r"/workspaces/blank",
|
||||
# Main,
|
||||
# {"page": "workspaces_blank"},
|
||||
# name="workspaces_blank",
|
||||
# ),
|
||||
# url(
|
||||
# r"/workspaces",
|
||||
# Workspaces,
|
||||
# {"page": "workspaces", "db_session": deps["db_session"]},
|
||||
# name="workspaces",
|
||||
# ),
|
||||
# url(
|
||||
# r"/requests",
|
||||
# Request,
|
||||
# {"page": "requests", "db_session": deps["db_session"]},
|
||||
# name="requests",
|
||||
# ),
|
||||
# url(
|
||||
# r"/requests/new",
|
||||
# RequestNew,
|
||||
# {
|
||||
# "page": "requests_new",
|
||||
# "db_session": deps["db_session"],
|
||||
# },
|
||||
# name="request_new",
|
||||
# ),
|
||||
# url(
|
||||
# r"/requests/new/([0-9])",
|
||||
# RequestNew,
|
||||
# {
|
||||
# "page": "requests_new",
|
||||
# "db_session": deps["db_session"],
|
||||
# },
|
||||
# name="request_form_new",
|
||||
# ),
|
||||
# url(
|
||||
# r"/requests/new/([0-9])/(\S+)",
|
||||
# RequestNew,
|
||||
# {
|
||||
# "page": "requests_new",
|
||||
# "db_session": deps["db_session"],
|
||||
# },
|
||||
# name="request_form_update",
|
||||
# ),
|
||||
# url(
|
||||
# r"/requests/submit/(\S+)",
|
||||
# RequestsSubmit,
|
||||
# {"db_session": deps["db_session"]},
|
||||
# name="requests_submit",
|
||||
# ),
|
||||
# # Dummy request/approval screen
|
||||
# url(
|
||||
# r"/request/approval",
|
||||
# Main,
|
||||
# {"page": "request_approval"},
|
||||
# name="request_approval",
|
||||
# ),
|
||||
# url(
|
||||
# r"/requests/verify/(\S+)",
|
||||
# RequestFinancialVerification,
|
||||
# {
|
||||
# "page": "financial_verification",
|
||||
# "db_session": deps["db_session"],
|
||||
# },
|
||||
# name="financial_verification",
|
||||
# ),
|
||||
# url(
|
||||
# r"/requests/financial_verification_submitted",
|
||||
# Main,
|
||||
# {"page": "requests/financial_verification_submitted"},
|
||||
# name="financial_verification_submitted",
|
||||
# ),
|
||||
# url(r"/users", Main, {"page": "users"}, name="users"),
|
||||
# url(r"/reports", Main, {"page": "reports"}, name="reports"),
|
||||
# url(r"/calculator", Main, {"page": "calculator"}, name="calculator"),
|
||||
# url(
|
||||
# r"/workspaces/(\S+)/members", WorkspaceMembers, {}, name="workspace_members"
|
||||
# ),
|
||||
# url(r"/workspaces/(\S+)/projects", Workspace, {}, name="workspace_projects"),
|
||||
# url(r"/workspaces/123456/projects/789/edit", Main, {"page": "project_edit"}, name="project_edit"),
|
||||
# url(r"/workspaces/123456/members/789/edit", Main, {"page": "member_edit"}, name="member_edit"),
|
||||
# ]
|
||||
|
||||
# if not ENV == "production":
|
||||
# routes += [
|
||||
# url(
|
||||
# r"/login-dev",
|
||||
# Dev,
|
||||
# {
|
||||
# "action": "login",
|
||||
# "sessions": deps["sessions"],
|
||||
# "db_session": deps["db_session"],
|
||||
# },
|
||||
# name="dev-login",
|
||||
# )
|
||||
# ]
|
||||
|
||||
# app = tornado.web.Application(
|
||||
# routes,
|
||||
# login_url="/",
|
||||
# template_path=home.child("templates"),
|
||||
# static_path=home.child("static"),
|
||||
# cookie_secret=config["default"]["COOKIE_SECRET"],
|
||||
# debug=config["default"].getboolean("DEBUG"),
|
||||
# ui_modules=ui_modules,
|
||||
# ui_methods=ui_methods,
|
||||
# **kwargs
|
||||
# )
|
||||
# app.config = config
|
||||
# app.sessions = deps["sessions"]
|
||||
# return app
|
||||
|
||||
|
||||
def make_deps(config):
|
||||
# we do not want to do SSL verify services in test and development
|
||||
validate_cert = ENV == "production"
|
||||
@ -206,4 +212,4 @@ def make_config():
|
||||
)
|
||||
config.set("default", "DATABASE_URI", database_uri)
|
||||
|
||||
return config
|
||||
return config["default"]
|
||||
|
@ -1,16 +1,13 @@
|
||||
from webassets import Environment, Bundle
|
||||
from flask_assets import Environment, Bundle
|
||||
from atst.home import home
|
||||
|
||||
environment = Environment(
|
||||
directory=home.child("scss"),
|
||||
url="/static"
|
||||
)
|
||||
assets = Environment()
|
||||
|
||||
css = Bundle(
|
||||
"atat.scss",
|
||||
"../scss/atat.scss",
|
||||
filters="scss",
|
||||
output="../static/assets/out.%(version)s.css",
|
||||
depends=("**/*.scss"),
|
||||
)
|
||||
|
||||
environment.register("css", css)
|
||||
assets.register("css", css)
|
||||
|
@ -1,8 +1,3 @@
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import sessionmaker, scoped_session
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
|
||||
|
||||
def make_db(config):
|
||||
engine = create_engine(config['default']['DATABASE_URI'])
|
||||
session = scoped_session(sessionmaker(bind=engine))
|
||||
return session
|
||||
db = SQLAlchemy()
|
||||
|
@ -1,9 +1,8 @@
|
||||
import tornado.web
|
||||
from atst.assets import environment
|
||||
from atst.sessions import SessionNotFoundError
|
||||
from atst.domain.users import Users
|
||||
|
||||
helpers = {"assets": environment}
|
||||
helpers = {"assets": None}
|
||||
|
||||
|
||||
class BaseHandler(tornado.web.RequestHandler):
|
||||
|
7
atst/routes/__init__.py
Normal file
7
atst/routes/__init__.py
Normal file
@ -0,0 +1,7 @@
|
||||
from flask import Blueprint, render_template
|
||||
|
||||
bp = Blueprint("atst", __name__)
|
||||
|
||||
@bp.route("/")
|
||||
def home():
|
||||
return render_template("home.html")
|
Loading…
x
Reference in New Issue
Block a user