diff options
-rw-r--r-- | .gitignore | 12 | ||||
-rw-r--r-- | .python-version | 1 | ||||
-rw-r--r-- | LICENSE.txt | 21 | ||||
-rw-r--r-- | MANIFEST.in | 10 | ||||
-rwxr-xr-x | Makefile | 30 | ||||
-rw-r--r-- | Pipfile | 19 | ||||
-rw-r--r-- | Pipfile.lock | 390 | ||||
-rw-r--r-- | README.rst | 13 | ||||
-rw-r--r-- | docs/Makefile | 38 | ||||
-rw-r--r-- | docs/_static/.gitkeep | 0 | ||||
-rw-r--r-- | docs/_templates/.gitkeep | 0 | ||||
-rw-r--r-- | docs/conf.py | 69 | ||||
-rw-r--r-- | docs/index.rst | 26 | ||||
-rw-r--r-- | docs/make.bat | 35 | ||||
-rw-r--r-- | setup.cfg | 43 | ||||
-rwxr-xr-x | setup.py | 22 | ||||
-rwxr-xr-x | tests/__init__.py | 11 | ||||
-rwxr-xr-x | thembed/__init__.py | 12 |
18 files changed, 752 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fceabbb --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +__pycache__ +/test*.py +/*.egg-info +/dist +/.spyproject +/build +/docs/_build +/venv +/README.html +/.pytest_cache + +/docs/_build diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..0b2eb36 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.7.2 diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..d1defab --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (C) 2018-2019 Thomas Touhey <thomas@touhey.fr> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..c0eb105 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,10 @@ +include README.rst +include LICENSE.txt +include MANIFEST.in +include setup.py +include setup.cfg + +include docs/*.rst +include docs/conf.py +include docs/Makefile +include docs/make.bat diff --git a/Makefile b/Makefile new file mode 100755 index 0000000..be3a816 --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +#!/usr/bin/make -f + PE := pipenv run + ST := $(PE) ./setup.py + DNAME := dist/$(shell $(ST) --name)-$(shell $(ST) --version).tar.gz + +test tests: + @$(PE) pytest -s -q + +prepare: + @pipenv install --dev +update: + @pipenv update --dev + +docs: + @$(ST) build_sphinx + +check: + @$(PE) flake8 +checkdocs: + @$(ST) checkdocs + +dist: $(DNAME) +$(DNAME): + @$(ST) sdist + +upload: $(DNAME) + @twine upload $(DNAME) + +.PHONY: test tests dist docs +# End of file. @@ -0,0 +1,19 @@ +[[source]] +url = 'https://pypi.python.org/simple' +verify_ssl = true +name = 'pypi' + +[requires] +python_version = '3.7' + +[packages] +requests = '*' + +[dev-packages] +sphinx = '*' +sphinx_rtd_theme = '*' +"collective.checkdocs" = '*' +pudb = '*' +pytest = '*' +flake8 = '*' +flake8-tabs = '*' diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..bfe8060 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,390 @@ +{ + "_meta": { + "hash": { + "sha256": "b43af002b1af6072aaf4fcddb8cc03a522a711122172a8d21ae13c97db8f927e" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.7" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.python.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "certifi": { + "hashes": [ + "sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939", + "sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" + ], + "version": "==2019.6.16" + }, + "chardet": { + "hashes": [ + "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", + "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + ], + "version": "==3.0.4" + }, + "idna": { + "hashes": [ + "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", + "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" + ], + "version": "==2.8" + }, + "requests": { + "hashes": [ + "sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4", + "sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" + ], + "index": "pypi", + "version": "==2.22.0" + }, + "urllib3": { + "hashes": [ + "sha256:b246607a25ac80bedac05c6f282e3cdaf3afb65420fd024ac94435cabe6e18d1", + "sha256:dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232" + ], + "version": "==1.25.3" + } + }, + "develop": { + "alabaster": { + "hashes": [ + "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359", + "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02" + ], + "version": "==0.7.12" + }, + "atomicwrites": { + "hashes": [ + "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4", + "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6" + ], + "version": "==1.3.0" + }, + "attrs": { + "hashes": [ + "sha256:69c0dbf2ed392de1cb5ec704444b08a5ef81680a61cb899dc08127123af36a79", + "sha256:f0b870f674851ecbfbbbd364d6b5cbdff9dcedbc7f3f5e18a6891057f21fe399" + ], + "version": "==19.1.0" + }, + "babel": { + "hashes": [ + "sha256:af92e6106cb7c55286b25b38ad7695f8b4efb36a90ba483d7f7a6628c46158ab", + "sha256:e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28" + ], + "version": "==2.7.0" + }, + "certifi": { + "hashes": [ + "sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939", + "sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" + ], + "version": "==2019.6.16" + }, + "chardet": { + "hashes": [ + "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", + "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + ], + "version": "==3.0.4" + }, + "collective.checkdocs": { + "hashes": [ + "sha256:3a5328257c5224bc72753820c182910d7fb336bc1dba5e09113d48566655e46e" + ], + "index": "pypi", + "version": "==0.2" + }, + "docutils": { + "hashes": [ + "sha256:6c4f696463b79f1fb8ba0c594b63840ebd41f059e92b31957c46b74a4599b6d0", + "sha256:9e4d7ecfc600058e07ba661411a2b7de2fd0fafa17d1a7f7361cd47b1175c827", + "sha256:a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99" + ], + "version": "==0.15.2" + }, + "entrypoints": { + "hashes": [ + "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19", + "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451" + ], + "version": "==0.3" + }, + "flake8": { + "hashes": [ + "sha256:19241c1cbc971b9962473e4438a2ca19749a7dd002dd1a946eaba171b4114548", + "sha256:8e9dfa3cecb2400b3738a42c54c3043e821682b9c840b0448c0503f781130696" + ], + "index": "pypi", + "version": "==3.7.8" + }, + "flake8-tabs": { + "hashes": [ + "sha256:154e93dea037e2234d502b9000bb46bea3ceed50f6378243a50189baa07d5904", + "sha256:876e31fec1a35ca15a1b4a7ea65b73ef7f66c8db858686c6da9b9509807fbccd" + ], + "index": "pypi", + "version": "==2.0.0" + }, + "idna": { + "hashes": [ + "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", + "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" + ], + "version": "==2.8" + }, + "imagesize": { + "hashes": [ + "sha256:3f349de3eb99145973fefb7dbe38554414e5c30abd0c8e4b970a7c9d09f3a1d8", + "sha256:f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5" + ], + "version": "==1.1.0" + }, + "importlib-metadata": { + "hashes": [ + "sha256:23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8", + "sha256:80d2de76188eabfbfcf27e6a37342c2827801e59c4cc14b0371c56fed43820e3" + ], + "version": "==0.19" + }, + "jinja2": { + "hashes": [ + "sha256:065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013", + "sha256:14dd6caf1527abb21f08f86c784eac40853ba93edb79552aa1e4b8aef1b61c7b" + ], + "version": "==2.10.1" + }, + "markupsafe": { + "hashes": [ + "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", + "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", + "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", + "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", + "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", + "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", + "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", + "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", + "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", + "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", + "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", + "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", + "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", + "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", + "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + ], + "version": "==1.1.1" + }, + "mccabe": { + "hashes": [ + "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", + "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" + ], + "version": "==0.6.1" + }, + "more-itertools": { + "hashes": [ + "sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832", + "sha256:92b8c4b06dac4f0611c0729b2f2ede52b2e1bac1ab48f089c7ddc12e26bb60c4" + ], + "version": "==7.2.0" + }, + "packaging": { + "hashes": [ + "sha256:a7ac867b97fdc07ee80a8058fe4435ccd274ecc3b0ed61d852d7d53055528cf9", + "sha256:c491ca87294da7cc01902edbe30a5bc6c4c28172b5138ab4e4aa1b9d7bfaeafe" + ], + "version": "==19.1" + }, + "pluggy": { + "hashes": [ + "sha256:0825a152ac059776623854c1543d65a4ad408eb3d33ee114dff91e57ec6ae6fc", + "sha256:b9817417e95936bf75d85d3f8767f7df6cdde751fc40aed3bb3074cbcb77757c" + ], + "version": "==0.12.0" + }, + "pudb": { + "hashes": [ + "sha256:ac30cfc64580958ab7265decb4cabb9141f08781ff072e9a336d5a7942ce35a6" + ], + "index": "pypi", + "version": "==2019.1" + }, + "py": { + "hashes": [ + "sha256:64f65755aee5b381cea27766a3a147c3f15b9b6b9ac88676de66ba2ae36793fa", + "sha256:dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53" + ], + "version": "==1.8.0" + }, + "pycodestyle": { + "hashes": [ + "sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56", + "sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c" + ], + "version": "==2.5.0" + }, + "pyflakes": { + "hashes": [ + "sha256:17dbeb2e3f4d772725c777fabc446d5634d1038f234e77343108ce445ea69ce0", + "sha256:d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2" + ], + "version": "==2.1.1" + }, + "pygments": { + "hashes": [ + "sha256:71e430bc85c88a430f000ac1d9b331d2407f681d6f6aec95e8bcfbc3df5b0127", + "sha256:881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297" + ], + "version": "==2.4.2" + }, + "pyparsing": { + "hashes": [ + "sha256:6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80", + "sha256:d9338df12903bbf5d65a0e4e87c2161968b10d2e489652bb47001d82a9b028b4" + ], + "version": "==2.4.2" + }, + "pytest": { + "hashes": [ + "sha256:6ef6d06de77ce2961156013e9dff62f1b2688aa04d0dc244299fe7d67e09370d", + "sha256:a736fed91c12681a7b34617c8fcefe39ea04599ca72c608751c31d89579a3f77" + ], + "index": "pypi", + "version": "==5.0.1" + }, + "pytz": { + "hashes": [ + "sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda", + "sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141" + ], + "version": "==2019.1" + }, + "requests": { + "hashes": [ + "sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4", + "sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" + ], + "index": "pypi", + "version": "==2.22.0" + }, + "six": { + "hashes": [ + "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", + "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" + ], + "version": "==1.12.0" + }, + "snowballstemmer": { + "hashes": [ + "sha256:9f3b9ffe0809d174f7047e121431acf99c89a7040f0ca84f94ba53a498e6d0c9" + ], + "version": "==1.9.0" + }, + "sphinx": { + "hashes": [ + "sha256:22538e1bbe62b407cf5a8aabe1bb15848aa66bb79559f42f5202bbce6b757a69", + "sha256:f9a79e746b87921cabc3baa375199c6076d1270cee53915dbd24fdbeaaacc427" + ], + "index": "pypi", + "version": "==2.1.2" + }, + "sphinx-rtd-theme": { + "hashes": [ + "sha256:00cf895504a7895ee433807c62094cf1e95f065843bf3acd17037c3e9a2becd4", + "sha256:728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a" + ], + "index": "pypi", + "version": "==0.4.3" + }, + "sphinxcontrib-applehelp": { + "hashes": [ + "sha256:edaa0ab2b2bc74403149cb0209d6775c96de797dfd5b5e2a71981309efab3897", + "sha256:fb8dee85af95e5c30c91f10e7eb3c8967308518e0f7488a2828ef7bc191d0d5d" + ], + "version": "==1.0.1" + }, + "sphinxcontrib-devhelp": { + "hashes": [ + "sha256:6c64b077937330a9128a4da74586e8c2130262f014689b4b89e2d08ee7294a34", + "sha256:9512ecb00a2b0821a146736b39f7aeb90759834b07e81e8cc23a9c70bacb9981" + ], + "version": "==1.0.1" + }, + "sphinxcontrib-htmlhelp": { + "hashes": [ + "sha256:4670f99f8951bd78cd4ad2ab962f798f5618b17675c35c5ac3b2132a14ea8422", + "sha256:d4fd39a65a625c9df86d7fa8a2d9f3cd8299a3a4b15db63b50aac9e161d8eff7" + ], + "version": "==1.0.2" + }, + "sphinxcontrib-jsmath": { + "hashes": [ + "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", + "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8" + ], + "version": "==1.0.1" + }, + "sphinxcontrib-qthelp": { + "hashes": [ + "sha256:513049b93031beb1f57d4daea74068a4feb77aa5630f856fcff2e50de14e9a20", + "sha256:79465ce11ae5694ff165becda529a600c754f4bc459778778c7017374d4d406f" + ], + "version": "==1.0.2" + }, + "sphinxcontrib-serializinghtml": { + "hashes": [ + "sha256:c0efb33f8052c04fd7a26c0a07f1678e8512e0faec19f4aa8f2473a8b81d5227", + "sha256:db6615af393650bf1151a6cd39120c29abaf93cc60db8c48eb2dddbfdc3a9768" + ], + "version": "==1.1.3" + }, + "urllib3": { + "hashes": [ + "sha256:b246607a25ac80bedac05c6f282e3cdaf3afb65420fd024ac94435cabe6e18d1", + "sha256:dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232" + ], + "version": "==1.25.3" + }, + "urwid": { + "hashes": [ + "sha256:644d3e3900867161a2fc9287a9762753d66bd194754679adb26aede559bcccbc" + ], + "version": "==2.0.1" + }, + "wcwidth": { + "hashes": [ + "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", + "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" + ], + "version": "==0.1.7" + }, + "zipp": { + "hashes": [ + "sha256:4970c3758f4e89a7857a973b1e2a5d75bcdc47794442f2e2dd4fe8e0466e809a", + "sha256:8a5712cfd3bb4248015eb3b0b3c54a5f6ee3f2425963ef2a0125b8bc40aafaec" + ], + "version": "==0.5.2" + } + } +} diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..d4f4395 --- /dev/null +++ b/README.rst @@ -0,0 +1,13 @@ +thembed -- the touhey embedded objects gatherer module +====================================================== + +This module's role is to gather information about objects embedded in a +link, like videos, pictures, etc. It is made by `Thomas Touhey`_ (``th`` +is for ``touhey``) for the `textoutpc`_ project, a BBCode to HTML +translation module. + +For more information, consult `the official website`_. + +.. _Thomas Touhey: https://thomas.touhey.fr/ +.. _textoutpc: https://textout.touhey.pro/ +.. _the official website: https://thembed.touhey.pro/ diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..4b5507b --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,38 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. + +PE = pipenv run +SPHINXOPTS = +SPHINXBUILD = $(PE) sphinx-build +SPHINXWATCH = $(PE) sphinx-autobuild +SOURCEDIR = . +BUILDDIR = _build +WEBROOT = thembed.touhey.pro:thembed_doc + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +# Livehtml build. +livehtml: + $(SPHINXWATCH) -b html -z ../thembed $(SPHINXOPTS) . $(BUILDDIR)/html + +.PHONY: livehtml + +# Send the website content (Linux-only). +show: html + find _build/html -type f -exec chmod 644 {} \; + rsync -Prlt --delete _build/html/ "$(WEBROOT)" + +.PHONY: show + +# End of file. diff --git a/docs/_static/.gitkeep b/docs/_static/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/_static/.gitkeep diff --git a/docs/_templates/.gitkeep b/docs/_templates/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/_templates/.gitkeep diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..a5c8dca --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,69 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# http://www.sphinx-doc.org/en/master/config + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. + +def _add_paths(): + import os + import sys + + sys.path.insert(0, os.path.abspath('..')) + +_add_paths() + +# -- Project information ----------------------------------------------------- + +project = 'thembed' +copyright = '2019, Thomas Touhey' +author = 'Thomas Touhey' + +# The full version, including alpha/beta/rc tags + +def _get_release(): + from os.path import dirname, join, normpath + from pkg_resources import Environment as _Environment + + module_path = normpath(join(dirname(__file__), '..')) + env = _Environment(module_path) + env.scan() + mod = env['thembed'][0] + return mod.version + +release = _get_release() + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc' +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = [] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '.goutput*'] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'sphinx_rtd_theme' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = [] diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..ffc6afa --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,26 @@ +Welcome to thembed's documentation! +=================================== + +This module's role is to gather information about objects embedded in a +link, like videos, pictures, etc. It is made by `Thomas Touhey`_ (``th`` +is for ``touhey``) for the `textoutpc`_ project, a BBCode to HTML +translation module. + +To install the module, use pip: + +.. code-block:: bash + + $ pip install thembed + +For more information and links, consult `the official website`_. + +Table of contents +----------------- + +.. toctree:: + :maxdepth: 2 + + +.. _Thomas Touhey: https://thomas.touhey.fr/ +.. _textoutpc: https://textout.touhey.pro/ +.. _the official website: https://thembed.touhey.pro/ diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..27f573b --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+ set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=.
+set BUILDDIR=_build
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+ echo.
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+ echo.installed, then set the SPHINXBUILD environment variable to point
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
+ echo.may add the Sphinx directory to PATH.
+ echo.
+ echo.If you don't have Sphinx installed, grab it from
+ echo.http://sphinx-doc.org/
+ exit /b 1
+)
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+
+:end
+popd
diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..ab2d251 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,43 @@ +[metadata] +name = thembed +version = attr: thembed.version +url = https://thembed.touhey.pro/ +project_urls = + Documentation = https://thembed.touhey.pro/docs/ +author = Thomas Touhey +author_email = thomas@touhey.fr +description = embed gathering module +long_description = file: README.rst +keywords = textout, embed, object +license = MIT +classifiers = + Development Status :: 2 - Pre-Alpha + Natural Language :: English + License :: OSI Approved :: MIT License + Operating System :: OS Independent + Programming Language :: Python :: 3 + Intended Audience :: Developers + +[options] +zip_safe = False +include_package_data = True +packages = thembed +install_requires = + requests + +[options.package_data] +* = *.txt, *.rst + +[build_sphinx] +source-dir = docs + +[wheel] +universal = True + +[flake8] +ignore = F401, F403, E126, E127, E128, E131, E241, E261, E265, E271, W191 +exclude = .git, __pycache__, build, dist, docs/conf.py, test.py, test + +[tool:pytest] +python_files = tests.py test_*.py *_tests.py +testpaths = tests diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..af034b8 --- /dev/null +++ b/setup.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +#************************************************************************** +# Copyright (C) 2019 Thomas "Cakeisalie5" Touhey <thomas@touhey.fr> +# This file is part of the thembed Python module, which is MIT-licensed. +#************************************************************************** +""" Setup script for the thembed Python package and script. """ + +from setuptools import setup as _setup + +kwargs = {} + +try: + from sphinx.setup_command import BuildDoc as _BuildDoc + kwargs['cmdclass'] = {'build_sphinx': _BuildDoc} +except ImportError: + pass + +# Actually, most of the project's data is read from the `setup.cfg` file. + +_setup(**kwargs) + +# End of file. diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100755 index 0000000..a894a7c --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python3 +#************************************************************************** +# Copyright (C) 2019 Thomas "Cakeisalie5" Touhey <thomas@touhey.fr> +# This file is part of the thembed project, which is MIT-licensed. +#************************************************************************** +""" Unit tests for the `thembed` Python module. """ + +# This file is only there to indicate that the folder is a module. +# It doesn't actually contain code. + +# End of file. diff --git a/thembed/__init__.py b/thembed/__init__.py new file mode 100755 index 0000000..0120035 --- /dev/null +++ b/thembed/__init__.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python3 +#************************************************************************** +# Copyright (C) 2019 Thomas "Cakeisalie5" Touhey <thomas@touhey.fr> +# This file is part of the thembed project, which is MIT-licensed. +#************************************************************************** +""" Embed objects gatherer on the open web. """ + +__all__ = [] + +version = "0.0.1" + +# End of file. |