├── LICENSE ├── Makefile ├── README.md ├── assets ├── license.png └── star.png └── config.json /LICENSE: -------------------------------------------------------------------------------- 1 | Mozilla Public License Version 2.0 2 | ================================== 3 | 4 | 1. Definitions 5 | -------------- 6 | 7 | 1.1. "Contributor" 8 | means each individual or legal entity that creates, contributes to 9 | the creation of, or owns Covered Software. 10 | 11 | 1.2. "Contributor Version" 12 | means the combination of the Contributions of others (if any) used 13 | by a Contributor and that particular Contributor's Contribution. 14 | 15 | 1.3. "Contribution" 16 | means Covered Software of a particular Contributor. 17 | 18 | 1.4. "Covered Software" 19 | means Source Code Form to which the initial Contributor has attached 20 | the notice in Exhibit A, the Executable Form of such Source Code 21 | Form, and Modifications of such Source Code Form, in each case 22 | including portions thereof. 23 | 24 | 1.5. "Incompatible With Secondary Licenses" 25 | means 26 | 27 | (a) that the initial Contributor has attached the notice described 28 | in Exhibit B to the Covered Software; or 29 | 30 | (b) that the Covered Software was made available under the terms of 31 | version 1.1 or earlier of the License, but not also under the 32 | terms of a Secondary License. 33 | 34 | 1.6. "Executable Form" 35 | means any form of the work other than Source Code Form. 36 | 37 | 1.7. "Larger Work" 38 | means a work that combines Covered Software with other material, in 39 | a separate file or files, that is not Covered Software. 40 | 41 | 1.8. "License" 42 | means this document. 43 | 44 | 1.9. "Licensable" 45 | means having the right to grant, to the maximum extent possible, 46 | whether at the time of the initial grant or subsequently, any and 47 | all of the rights conveyed by this License. 48 | 49 | 1.10. "Modifications" 50 | means any of the following: 51 | 52 | (a) any file in Source Code Form that results from an addition to, 53 | deletion from, or modification of the contents of Covered 54 | Software; or 55 | 56 | (b) any new file in Source Code Form that contains any Covered 57 | Software. 58 | 59 | 1.11. "Patent Claims" of a Contributor 60 | means any patent claim(s), including without limitation, method, 61 | process, and apparatus claims, in any patent Licensable by such 62 | Contributor that would be infringed, but for the grant of the 63 | License, by the making, using, selling, offering for sale, having 64 | made, import, or transfer of either its Contributions or its 65 | Contributor Version. 66 | 67 | 1.12. "Secondary License" 68 | means either the GNU General Public License, Version 2.0, the GNU 69 | Lesser General Public License, Version 2.1, the GNU Affero General 70 | Public License, Version 3.0, or any later versions of those 71 | licenses. 72 | 73 | 1.13. "Source Code Form" 74 | means the form of the work preferred for making modifications. 75 | 76 | 1.14. "You" (or "Your") 77 | means an individual or a legal entity exercising rights under this 78 | License. For legal entities, "You" includes any entity that 79 | controls, is controlled by, or is under common control with You. For 80 | purposes of this definition, "control" means (a) the power, direct 81 | or indirect, to cause the direction or management of such entity, 82 | whether by contract or otherwise, or (b) ownership of more than 83 | fifty percent (50%) of the outstanding shares or beneficial 84 | ownership of such entity. 85 | 86 | 2. License Grants and Conditions 87 | -------------------------------- 88 | 89 | 2.1. Grants 90 | 91 | Each Contributor hereby grants You a world-wide, royalty-free, 92 | non-exclusive license: 93 | 94 | (a) under intellectual property rights (other than patent or trademark) 95 | Licensable by such Contributor to use, reproduce, make available, 96 | modify, display, perform, distribute, and otherwise exploit its 97 | Contributions, either on an unmodified basis, with Modifications, or 98 | as part of a Larger Work; and 99 | 100 | (b) under Patent Claims of such Contributor to make, use, sell, offer 101 | for sale, have made, import, and otherwise transfer either its 102 | Contributions or its Contributor Version. 103 | 104 | 2.2. Effective Date 105 | 106 | The licenses granted in Section 2.1 with respect to any Contribution 107 | become effective for each Contribution on the date the Contributor first 108 | distributes such Contribution. 109 | 110 | 2.3. Limitations on Grant Scope 111 | 112 | The licenses granted in this Section 2 are the only rights granted under 113 | this License. No additional rights or licenses will be implied from the 114 | distribution or licensing of Covered Software under this License. 115 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 116 | Contributor: 117 | 118 | (a) for any code that a Contributor has removed from Covered Software; 119 | or 120 | 121 | (b) for infringements caused by: (i) Your and any other third party's 122 | modifications of Covered Software, or (ii) the combination of its 123 | Contributions with other software (except as part of its Contributor 124 | Version); or 125 | 126 | (c) under Patent Claims infringed by Covered Software in the absence of 127 | its Contributions. 128 | 129 | This License does not grant any rights in the trademarks, service marks, 130 | or logos of any Contributor (except as may be necessary to comply with 131 | the notice requirements in Section 3.4). 132 | 133 | 2.4. Subsequent Licenses 134 | 135 | No Contributor makes additional grants as a result of Your choice to 136 | distribute the Covered Software under a subsequent version of this 137 | License (see Section 10.2) or under the terms of a Secondary License (if 138 | permitted under the terms of Section 3.3). 139 | 140 | 2.5. Representation 141 | 142 | Each Contributor represents that the Contributor believes its 143 | Contributions are its original creation(s) or it has sufficient rights 144 | to grant the rights to its Contributions conveyed by this License. 145 | 146 | 2.6. Fair Use 147 | 148 | This License is not intended to limit any rights You have under 149 | applicable copyright doctrines of fair use, fair dealing, or other 150 | equivalents. 151 | 152 | 2.7. Conditions 153 | 154 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 155 | in Section 2.1. 156 | 157 | 3. Responsibilities 158 | ------------------- 159 | 160 | 3.1. Distribution of Source Form 161 | 162 | All distribution of Covered Software in Source Code Form, including any 163 | Modifications that You create or to which You contribute, must be under 164 | the terms of this License. You must inform recipients that the Source 165 | Code Form of the Covered Software is governed by the terms of this 166 | License, and how they can obtain a copy of this License. You may not 167 | attempt to alter or restrict the recipients' rights in the Source Code 168 | Form. 169 | 170 | 3.2. Distribution of Executable Form 171 | 172 | If You distribute Covered Software in Executable Form then: 173 | 174 | (a) such Covered Software must also be made available in Source Code 175 | Form, as described in Section 3.1, and You must inform recipients of 176 | the Executable Form how they can obtain a copy of such Source Code 177 | Form by reasonable means in a timely manner, at a charge no more 178 | than the cost of distribution to the recipient; and 179 | 180 | (b) You may distribute such Executable Form under the terms of this 181 | License, or sublicense it under different terms, provided that the 182 | license for the Executable Form does not attempt to limit or alter 183 | the recipients' rights in the Source Code Form under this License. 184 | 185 | 3.3. Distribution of a Larger Work 186 | 187 | You may create and distribute a Larger Work under terms of Your choice, 188 | provided that You also comply with the requirements of this License for 189 | the Covered Software. If the Larger Work is a combination of Covered 190 | Software with a work governed by one or more Secondary Licenses, and the 191 | Covered Software is not Incompatible With Secondary Licenses, this 192 | License permits You to additionally distribute such Covered Software 193 | under the terms of such Secondary License(s), so that the recipient of 194 | the Larger Work may, at their option, further distribute the Covered 195 | Software under the terms of either this License or such Secondary 196 | License(s). 197 | 198 | 3.4. Notices 199 | 200 | You may not remove or alter the substance of any license notices 201 | (including copyright notices, patent notices, disclaimers of warranty, 202 | or limitations of liability) contained within the Source Code Form of 203 | the Covered Software, except that You may alter any license notices to 204 | the extent required to remedy known factual inaccuracies. 205 | 206 | 3.5. Application of Additional Terms 207 | 208 | You may choose to offer, and to charge a fee for, warranty, support, 209 | indemnity or liability obligations to one or more recipients of Covered 210 | Software. However, You may do so only on Your own behalf, and not on 211 | behalf of any Contributor. You must make it absolutely clear that any 212 | such warranty, support, indemnity, or liability obligation is offered by 213 | You alone, and You hereby agree to indemnify every Contributor for any 214 | liability incurred by such Contributor as a result of warranty, support, 215 | indemnity or liability terms You offer. You may include additional 216 | disclaimers of warranty and limitations of liability specific to any 217 | jurisdiction. 218 | 219 | 4. Inability to Comply Due to Statute or Regulation 220 | --------------------------------------------------- 221 | 222 | If it is impossible for You to comply with any of the terms of this 223 | License with respect to some or all of the Covered Software due to 224 | statute, judicial order, or regulation then You must: (a) comply with 225 | the terms of this License to the maximum extent possible; and (b) 226 | describe the limitations and the code they affect. Such description must 227 | be placed in a text file included with all distributions of the Covered 228 | Software under this License. Except to the extent prohibited by statute 229 | or regulation, such description must be sufficiently detailed for a 230 | recipient of ordinary skill to be able to understand it. 231 | 232 | 5. Termination 233 | -------------- 234 | 235 | 5.1. The rights granted under this License will terminate automatically 236 | if You fail to comply with any of its terms. However, if You become 237 | compliant, then the rights granted under this License from a particular 238 | Contributor are reinstated (a) provisionally, unless and until such 239 | Contributor explicitly and finally terminates Your grants, and (b) on an 240 | ongoing basis, if such Contributor fails to notify You of the 241 | non-compliance by some reasonable means prior to 60 days after You have 242 | come back into compliance. Moreover, Your grants from a particular 243 | Contributor are reinstated on an ongoing basis if such Contributor 244 | notifies You of the non-compliance by some reasonable means, this is the 245 | first time You have received notice of non-compliance with this License 246 | from such Contributor, and You become compliant prior to 30 days after 247 | Your receipt of the notice. 248 | 249 | 5.2. If You initiate litigation against any entity by asserting a patent 250 | infringement claim (excluding declaratory judgment actions, 251 | counter-claims, and cross-claims) alleging that a Contributor Version 252 | directly or indirectly infringes any patent, then the rights granted to 253 | You by any and all Contributors for the Covered Software under Section 254 | 2.1 of this License shall terminate. 255 | 256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 257 | end user license agreements (excluding distributors and resellers) which 258 | have been validly granted by You or Your distributors under this License 259 | prior to termination shall survive termination. 260 | 261 | ************************************************************************ 262 | * * 263 | * 6. Disclaimer of Warranty * 264 | * ------------------------- * 265 | * * 266 | * Covered Software is provided under this License on an "as is" * 267 | * basis, without warranty of any kind, either expressed, implied, or * 268 | * statutory, including, without limitation, warranties that the * 269 | * Covered Software is free of defects, merchantable, fit for a * 270 | * particular purpose or non-infringing. The entire risk as to the * 271 | * quality and performance of the Covered Software is with You. * 272 | * Should any Covered Software prove defective in any respect, You * 273 | * (not any Contributor) assume the cost of any necessary servicing, * 274 | * repair, or correction. This disclaimer of warranty constitutes an * 275 | * essential part of this License. No use of any Covered Software is * 276 | * authorized under this License except under this disclaimer. * 277 | * * 278 | ************************************************************************ 279 | 280 | ************************************************************************ 281 | * * 282 | * 7. Limitation of Liability * 283 | * -------------------------- * 284 | * * 285 | * Under no circumstances and under no legal theory, whether tort * 286 | * (including negligence), contract, or otherwise, shall any * 287 | * Contributor, or anyone who distributes Covered Software as * 288 | * permitted above, be liable to You for any direct, indirect, * 289 | * special, incidental, or consequential damages of any character * 290 | * including, without limitation, damages for lost profits, loss of * 291 | * goodwill, work stoppage, computer failure or malfunction, or any * 292 | * and all other commercial damages or losses, even if such party * 293 | * shall have been informed of the possibility of such damages. This * 294 | * limitation of liability shall not apply to liability for death or * 295 | * personal injury resulting from such party's negligence to the * 296 | * extent applicable law prohibits such limitation. Some * 297 | * jurisdictions do not allow the exclusion or limitation of * 298 | * incidental or consequential damages, so this exclusion and * 299 | * limitation may not apply to You. * 300 | * * 301 | ************************************************************************ 302 | 303 | 8. Litigation 304 | ------------- 305 | 306 | Any litigation relating to this License may be brought only in the 307 | courts of a jurisdiction where the defendant maintains its principal 308 | place of business and such litigation shall be governed by laws of that 309 | jurisdiction, without reference to its conflict-of-law provisions. 310 | Nothing in this Section shall prevent a party's ability to bring 311 | cross-claims or counter-claims. 312 | 313 | 9. Miscellaneous 314 | ---------------- 315 | 316 | This License represents the complete agreement concerning the subject 317 | matter hereof. If any provision of this License is held to be 318 | unenforceable, such provision shall be reformed only to the extent 319 | necessary to make it enforceable. Any law or regulation which provides 320 | that the language of a contract shall be construed against the drafter 321 | shall not be used to construe this License against a Contributor. 322 | 323 | 10. Versions of the License 324 | --------------------------- 325 | 326 | 10.1. New Versions 327 | 328 | Mozilla Foundation is the license steward. Except as provided in Section 329 | 10.3, no one other than the license steward has the right to modify or 330 | publish new versions of this License. Each version will be given a 331 | distinguishing version number. 332 | 333 | 10.2. Effect of New Versions 334 | 335 | You may distribute the Covered Software under the terms of the version 336 | of the License under which You originally received the Covered Software, 337 | or under the terms of any subsequent version published by the license 338 | steward. 339 | 340 | 10.3. Modified Versions 341 | 342 | If you create software not governed by this License, and you want to 343 | create a new license for such software, you may create and use a 344 | modified version of this License if you rename the license and remove 345 | any references to the name of the license steward (except to note that 346 | such modified license differs from this License). 347 | 348 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 349 | Licenses 350 | 351 | If You choose to distribute Source Code Form that is Incompatible With 352 | Secondary Licenses under the terms of this version of the License, the 353 | notice described in Exhibit B of this License must be attached. 354 | 355 | Exhibit A - Source Code Form License Notice 356 | ------------------------------------------- 357 | 358 | This Source Code Form is subject to the terms of the Mozilla Public 359 | License, v. 2.0. If a copy of the MPL was not distributed with this 360 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 361 | 362 | If it is not possible or desirable to put the notice in a particular 363 | file, then You may include the notice in a location (such as a LICENSE 364 | file in a relevant directory) where a recipient would be likely to look 365 | for such a notice. 366 | 367 | You may add additional accurate notices of copyright ownership. 368 | 369 | Exhibit B - "Incompatible With Secondary Licenses" Notice 370 | --------------------------------------------------------- 371 | 372 | This Source Code Form is "Incompatible With Secondary Licenses", as 373 | defined by the Mozilla Public License, v. 2.0. 374 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: build 2 | 3 | # make build TOKEN=XXXX 4 | 5 | build: 6 | awesome config.json READLE.md --token TOKEN -------------------------------------------------------------------------------- /assets/license.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gribouille/awesome-python/837daebcfead54d20e89a07c5a534d1022ae4f86/assets/license.png -------------------------------------------------------------------------------- /assets/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gribouille/awesome-python/837daebcfead54d20e89a07c5a534d1022ae4f86/assets/star.png -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Awesome Python", 3 | "description": "An enriched version of the [awesome-python](https://github.com/vinta/awesome-python) generated with [awesome](https://github.com/gribouille/awesome).", 4 | "categories": [ 5 | { 6 | "title": "Awesome Python", 7 | "categories": [ 8 | { 9 | "title" : "Admin Panels", 10 | "description": "Libraries for administrative interfaces.", 11 | "items": [ 12 | {"url": "ajenti/ajenti"}, 13 | {"url": "http://djangosuit.com/", "name": "django-suit", "description": "Alternative Django Admin-Interface (free only for Non-commercial use)."}, 14 | {"url": "sshwsfc/xadmin"}, 15 | {"url": "flask-admin/flask-admin"}, 16 | {"url": "mher/flower"}, 17 | {"url": "http://grappelliproject.com", "name": "Grappelli", "description": "A jazzy skin for the Django Admin-Interface."}, 18 | {"url": "wooey/wooey"} 19 | ] 20 | }, 21 | { 22 | "title" : "Algorithms and Design Patterns", 23 | "description": "Python implementation of algorithms and design patterns.", 24 | "items": [ 25 | {"url": "keon/algorithms"}, 26 | {"url": "tylerlaberge/PyPattyrn"}, 27 | {"url": "faif/python-patterns"}, 28 | {"url": "http://www.grantjenks.com/docs/sortedcontainers/", "name": "sortedcontainers", "description": "Fast, pure-Python implementation of SortedList, SortedDict, and SortedSet types."} 29 | ] 30 | }, 31 | { 32 | "title" : "Anti-spam", 33 | "description": "Libraries for fighting spam.", 34 | "items": [ 35 | {"url": "mbi/django-simple-captcha"}, 36 | {"url": "moqada/django-simple-spam-blocker"} 37 | ] 38 | }, 39 | { 40 | "title" : "Asset Management", 41 | "description": "Tools for managing, compressing and minifying website assets.", 42 | "items": [ 43 | {"url": "django-compressor/django-compressor"}, 44 | {"url": "jazzband/django-pipeline"}, 45 | {"url": "jschneier/django-storages"}, 46 | {"url": "http://www.fanstatic.org/en/latest/", "name": "fanstatic", "description": "Packages, optimizes, and serves static file dependencies as Python packages."}, 47 | {"url": "http://wimleers.com/fileconveyor", "name": "fileconveyor", "description": "A daemon to detect and sync files to CDNs, S3 and FTP."}, 48 | {"url": "miracle2k/flask-assets"}, 49 | {"url": "jaysonsantos/jinja-assets-compressor"}, 50 | {"url": "miracle2k/webassets"} 51 | ] 52 | }, 53 | { 54 | "title" : "Audio", 55 | "description": "Libraries for manipulating audio.", 56 | "items": [ 57 | {"url": "danilobellini/audiolazy"}, 58 | {"url": "beetbox/audioread"}, 59 | {"url": "http://beets.io/", "name": "beets", "description": "A music library manager and [MusicBrainz](https://musicbrainz.org/) tagger."}, 60 | {"url": "worldveil/dejavu"}, 61 | {"url": "StreetVoice/django-elastic-transcoder"}, 62 | {"url": "http://eyed3.nicfit.net/", "name": "eyeD3", "description": "A tool for working with audio files, specifically MP3 files containing ID3 metadata."}, 63 | {"url": "https://nedbatchelder.com/code/modules/id3reader.py", "name": "id3reader", "description": "A Python module for reading MP3 meta data."}, 64 | {"url": "globocom/m3u8"}, 65 | {"url": "http://bspaans.github.io/python-mingus/", "name": "mingus", "description": "An advanced music theory and notation package with MIDI file and playback support."}, 66 | {"url": "quodlibet/mutagen"}, 67 | {"url": "tyiannak/pyAudioAnalysis"}, 68 | {"url": "jiaaro/pydub"}, 69 | {"url": "echonest/pyechonest"}, 70 | {"url": "http://scikits.appspot.com/talkbox", "name": "talkbox", "description": "A Python library for speech/signal processing."}, 71 | {"url": "Parisson/TimeSide"}, 72 | {"url": "devsnd/tinytag"} 73 | ] 74 | }, 75 | { 76 | "title" : "Authentication", 77 | "description": "Libraries for implementing authentications schemes.", 78 | "categories": [ 79 | { 80 | "title": "OAuth", 81 | "items": [ 82 | {"url": "authomatic/authomatic"}, 83 | {"url": "pennersr/django-allauth"}, 84 | {"url": "jazzband/django-oauth-toolkit"}, 85 | {"url": "lepture/flask-oauthlib"}, 86 | {"url": "idan/oauthlib"}, 87 | {"url": "joestump/python-oauth2"}, 88 | {"url": "omab/python-social-auth"}, 89 | {"url": "litl/rauth"}, 90 | {"url": "demianbrecht/sanction"} 91 | ] 92 | }, 93 | { 94 | "title": "Others", 95 | "items": [ 96 | {"url": "demonware/jose"}, 97 | {"url": "jpadilla/pyjwt"}, 98 | {"url": "brianloveswords/python-jws"}, 99 | {"url": "davedoesdev/python-jwt"} 100 | ] 101 | } 102 | ] 103 | }, 104 | { 105 | "title" : "Build Tools", 106 | "description": "Compile software from source code.", 107 | "items": [ 108 | {"url": "http://www.yoctoproject.org/docs/1.6/bitbake-user-manual/bitbake-user-manual.html", "name": "BitBake", "description": "A make-like build tool for embedded Linux."}, 109 | {"url": "http://www.buildout.org/en/latest/", "name": "buildout", "description": "A build system for creating, assembling and deploying applications from multiple parts."}, 110 | {"url": "platformio/platformio-core"}, 111 | {"url": "pybuilder/pybuilder"}, 112 | {"url": "http://www.scons.org/", "name": "SCons", "description": "A software construction tool."} 113 | ] 114 | }, 115 | { 116 | "title" : "Built-in Classes Enhancement", 117 | "description": "Libraries for enhancing Python built-in classes.", 118 | "items": [ 119 | {"url": "python-attrs/attrs"}, 120 | {"url": "jab/bidict"}, 121 | {"url": "cdgriffith/Box"}, 122 | {"url": "carlosescri/DottedDict"} 123 | ] 124 | }, 125 | { 126 | "title" : "CMS", 127 | "description": "Content Management Systems.", 128 | "items": [ 129 | {"url": "https://www.django-cms.org/en/", "name": "django-cms", "description": "An Open source enterprise CMS based on the Django."}, 130 | {"url": "http://djedi-cms.org/", "name": "djedi-cms", "description": "A lightweight but yet powerful Django CMS with plugins, inline editing and performance in mind."}, 131 | {"url": "http://www.feincms.org/", "name": "FeinCMS", "description": "One of the most advanced Content Management Systems built on Django."}, 132 | {"url": "http://kotti.pylonsproject.org/", "name": "Kotti", "description": "A high-level, Pythonic web application framework built on Pyramid."}, 133 | {"url": "http://mezzanine.jupo.org/", "name": "Mezzanine", "description": "A powerful, consistent, and flexible content management platform."}, 134 | {"url": "http://opps.github.io/opps/", "name": "Opps", "description": "A Django-based CMS for magazines, newspapers websites and portals with high-traffic."}, 135 | {"url": "https://plone.org/", "name": "Plone", "description": "A CMS built on top of the open source application server Zope."}, 136 | {"url": "http://quokkaproject.org/", "name": "Quokka", "description": "Flexible, extensible, small CMS powered by Flask and MongoDB."}, 137 | {"url": "https://wagtail.io/", "name": "Wagtail", "description": "A Django content management system."}, 138 | {"url": "https://wid.gy/", "name": "Widgy", "description": "Last CMS framework, based on Django."} 139 | ] 140 | }, 141 | { 142 | "title" : "Caching", 143 | "description": "Libraries for caching data.", 144 | "items": [ 145 | {"url": "bbangert/beaker"}, 146 | {"url": "http://www.grantjenks.com/docs/diskcache/", "name": "DiskCache", "description": "SQLite and file backed cache backend with faster lookups than memcached and redis."}, 147 | {"url": "django-cache-machine/django-cache-machine"}, 148 | {"url": "Suor/django-cacheops"}, 149 | {"url": "5monkeys/django-viewlet"}, 150 | {"url": "http://dogpilecache.readthedocs.io/en/latest/", "name": "dogpile.cache", "description": "dogpile.cache is next generation replacement for Beaker made by same authors."}, 151 | {"url": "https://pypi.python.org/pypi/HermesCache", "name": "HermesCache", "description": "Python caching library with tag-based invalidation and dogpile effect prevention."}, 152 | {"url": "jmoiron/johnny-cache"}, 153 | {"url": "lericson/pylibmc"} 154 | ] 155 | }, 156 | { 157 | "title" : "ChatOps Tools", 158 | "description": "Libraries for chatbot development.", 159 | "items": [ 160 | {"url": "http://errbot.io/en/latest/", "name": "Errbot", "description": "The easiest and most popular chatbot to implement ChatOps."} 161 | ] 162 | }, 163 | { 164 | "title" : "Cluster Computing", 165 | "description": "Frameworks and libraries for Cluster Computing.", 166 | "items": [ 167 | {"url": "https://pypi.python.org/pypi/pyspark/", "name": "PySpark", "description": "[Apache Spark](https://spark.apache.org/) Python API."}, 168 | {"url": "https://dask.pydata.org/en/latest/", "name": "dask", "description": "A flexible parallel computing library for analytic computing."}, 169 | {"url": "robinhood/faust"}, 170 | {"url": "spotify/luigi"}, 171 | {"url": "Yelp/mrjob"}, 172 | {"url": "Parsely/streamparse"} 173 | ] 174 | }, 175 | { 176 | "title" : "Code Analysis", 177 | "description": "Tools of static analysis, linters and code quality checkers. See: [awesome-static-analysis](https://github.com/mre/awesome-static-analysis).", 178 | "categories": [ 179 | { 180 | "title": "Code Analysis", 181 | "items": [ 182 | {"url": "https://pypi.python.org/pypi/flake8", "name": "flake8", "description": "A wrapper around pycodestyle, pyflakes and McCabe."}, 183 | {"url": "http://coala.io/", "name": "coala", "description": "Language independent and easily extendable code analysis application."}, 184 | {"url": "scottrogowski/code2flow"}, 185 | {"url": "landscapeio/prospector"}, 186 | {"url": "gak/pycallgraph"}, 187 | {"url": "klen/pylama"}, 188 | {"url": "https://www.pylint.org/", "name": "pylint", "description": "A fully customizable source code analyzer."} 189 | ] 190 | }, 191 | { 192 | "title": "Static Type Checkers", 193 | "items": [ 194 | {"url": "http://mypy-lang.org/", "name": "mypy", "description": "Check variable types during compile time."}, 195 | {"url": "facebook/pyre-check"} 196 | ] 197 | }, 198 | { 199 | "title": "Static Type Annotations Generators", 200 | "items": [ 201 | {"url": "Instagram/MonkeyType"} 202 | ] 203 | } 204 | ] 205 | }, 206 | { 207 | "title" : "Command-line Tools", 208 | "description": "Libraries for building command-line application.", 209 | "categories": [ 210 | { 211 | "title": "Command-line Application Development", 212 | "items": [ 213 | {"url": "http://builtoncement.com/", "name": "cement", "description": "CLI Application Framework for Python."}, 214 | {"url": "http://click.pocoo.org/dev/", "name": "click", "description": "A package for creating beautiful command line interfaces in a composable way."}, 215 | {"url": "https://docs.openstack.org/developer/cliff/", "name": "cliff", "description": "A framework for creating command-line programs with multi-level commands."}, 216 | {"url": "kennethreitz/clint"}, 217 | {"url": "http://docopt.org/", "name": "docopt", "description": "Pythonic command line arguments parser."}, 218 | {"url": "chriskiehl/Gooey"}, 219 | {"url": "google/python-fire"}, 220 | {"url": "jonathanslenders/python-prompt-toolkit"} 221 | ] 222 | }, 223 | { 224 | "title": "Terminal Rendering", 225 | "items": [ 226 | {"url": "peterbrittain/asciimatics"}, 227 | {"url": "glamp/bashplotlib"}, 228 | {"url": "https://pypi.python.org/pypi/colorama", "name": "colorama", "description": "Cross-platform colored terminal text."} 229 | ] 230 | }, 231 | { 232 | "title": "Productivity Tools", 233 | "items": [ 234 | {"url": "aws/aws-cli"}, 235 | {"url": "audreyr/cookiecutter"}, 236 | {"url": "sloria/doitlive"}, 237 | {"url": "gleitz/howdoi"}, 238 | {"url": "jakubroztocil/httpie"}, 239 | {"url": "cloudnativelabs/kube-shell"}, 240 | {"url": "dbcli/mycli"}, 241 | {"url": "facebook/PathPicker"}, 242 | {"url": "mooz/percol"}, 243 | {"url": "dbcli/pgcli"}, 244 | {"url": "donnemartin/saws"}, 245 | {"url": "nvbn/thefuck"}, 246 | {"url": "tmux/tmux"}, 247 | {"url": "timofurrer/try"} 248 | ] 249 | } 250 | ] 251 | }, 252 | { 253 | "title" : "Compatibility", 254 | "description": "Libraries for migrating from Python 2 to 3.", 255 | "items": [ 256 | {"url": "http://python-future.org/index.html", "name": "Python-Future", "description": "The missing compatibility layer between Python 2 and Python 3."}, 257 | {"url": "mitsuhiko/python-modernize"}, 258 | {"url": "https://pypi.python.org/pypi/six", "name": "Six", "description": "Python 2 and 3 compatibility utilities."} 259 | ] 260 | }, 261 | { 262 | "title" : "Computer Vision", 263 | "description": "Libraries for computer vision.", 264 | "items": [ 265 | {"url": "http://opencv.org/", "name": "OpenCV", "description": "Open Source Computer Vision Library."}, 266 | {"url": "openpaperwork/pyocr"}, 267 | {"url": "tesseract-ocr"}, 268 | {"url": "http://simplecv.org/", "name": "SimpleCV", "description": "An open source framework for building computer vision applications."} 269 | ] 270 | }, 271 | { 272 | "title" : "Concurrency and Parallelism", 273 | "description": "Libraries for concurrent and parallel execution.", 274 | "items": [ 275 | {"url": "https://docs.python.org/3/library/multiprocessing.html", "name": "concurrent.futures", "description": "(Python standard library) Process-based [threading](https://docs.python.org/3/library/threading.html) interface."}, 276 | {"url": "https://docs.python.org/3/library/multiprocessing.html", "name": "multiprocessing", "description": "(Python standard library) A high-level interface for asynchronously executing callables."}, 277 | {"url": "http://eventlet.net/", "name": "eventlet", "description": "Asynchronous framework with WSGI support."}, 278 | {"url": "python-greenlet/greenlet"}, 279 | {"url": "soravux/scoop"}, 280 | {"url": "madisonmay/Tomorrow"}, 281 | {"url": "MagicStack/uvloop"} 282 | ] 283 | }, 284 | { 285 | "title" : "Configuration", 286 | "description": "Libraries for storing and parsing configuration options.", 287 | "items": [ 288 | {"url": "https://www.red-dove.com/config-doc/", "name": "config", "description": "Hierarchical config from the author of [logging](https://docs.python.org/3/library/logging.html)."}, 289 | {"url": "DiffSK/configobj"}, 290 | {"url": "https://docs.python.org/3/library/configparser.html", "name": "ConfigParser", "description": "(Python standard library) INI file parser."}, 291 | {"url": "http://profig.readthedocs.org/en/default/", "name": "profig", "description": "Config from multiple formats with value conversion."}, 292 | {"url": "henriquebastos/python-decouple"} 293 | ] 294 | }, 295 | { 296 | "title" : "Cryptography", 297 | "items": [ 298 | {"url": "https://cryptography.io/en/latest/", "name": "cryptography", "description": "A package designed to expose cryptographic primitives and recipes to Python developers."}, 299 | {"url": "http://www.paramiko.org/", "name": "Paramiko", "description": "A Python (2.6+, 3.3+) implementation of the SSHv2 protocol, providing both client and server functionality."}, 300 | {"url": "https://passlib.readthedocs.io/en/stable/", "name": "Passlib", "description": "Secure password storage/hashing library, very high level."}, 301 | {"url": "pyca/pynacl"} 302 | ] 303 | }, 304 | { 305 | "title" : "Data Analysis", 306 | "description": "Libraries for data analyzing.", 307 | "items": [ 308 | {"url": "blaze/blaze"}, 309 | {"url": "mining/mining"}, 310 | {"url": "https://orange.biolab.si/", "name": "Orange", "description": "Data mining, data visualization, analysis and machine learning through visual programming or scripts."}, 311 | {"url": "http://pandas.pydata.org/", "name": "Pandas", "description": "A library providing high-performance, easy-to-use data structures and data analysis tools."}, 312 | {"url": "ironmussa/Optimus"} 313 | ] 314 | }, 315 | { 316 | "title" : "Data Validation", 317 | "description": "Libraries for validating data. Used for forms in many cases.", 318 | "items": [ 319 | {"url": "pyeve/cerberus"}, 320 | {"url": "https://docs.pylonsproject.org/projects/colander/en/latest/", "name": "colander", "description": "Validating and deserializing data obtained via XML, JSON, an HTML form post."}, 321 | {"url": "https://plot.ly/products/dash/", "name": "Dash", "description": "Built on top of Flask, React and Plotly aimed at analytical web applications."}, 322 | {"url": "Acrotrend/awesome-dash"}, 323 | {"url": "Julian/jsonschema"}, 324 | {"url": "keleshev/schema"}, 325 | {"url": "schematics/schematics"}, 326 | {"url": "podio/valideer"}, 327 | {"url": "alecthomas/voluptuous"} 328 | ] 329 | }, 330 | { 331 | "title" : "Data Visualization", 332 | "description": "Libraries for visualizing data. See: [awesome-javascript](https://github.com/sorrycc/awesome-javascript#data-visualization).", 333 | "items": [ 334 | {"url": "altair-viz/altair"}, 335 | {"url": "bokeh/bokeh"}, 336 | {"url": "bloomberg/bqplot"}, 337 | {"url": "yhat/ggpy"}, 338 | {"url": "http://matplotlib.org/", "name": "Matplotlib", "description": "A Python 2D plotting library."}, 339 | {"url": "http://www.pygal.org/en/latest/", "name": "Pygal", "description": "A Python SVG Charts Creator."}, 340 | {"url": "https://pypi.python.org/pypi/pygraphviz", "name": "PyGraphviz", "description": "Python interface to [Graphviz](http://www.graphviz.org/)."}, 341 | {"url": "http://www.pyqtgraph.org/", "name": "PyQtGraph", "description": "Interactive and realtime 2D/3D/Image plotting and science/engineering widgets."}, 342 | {"url": "mwaskom/seaborn"}, 343 | {"url": "vispy/vispy"} 344 | ] 345 | }, 346 | { 347 | "title" : "Database", 348 | "description": "Databases implemented in Python.", 349 | "items": [ 350 | {"url": "https://pythonhosted.org/pickleDB/", "name": "pickleDB", "description": "A simple and lightweight key-value store for Python."}, 351 | {"url": "msiemens/tinydb"}, 352 | {"url": "http://www.zodb.org/en/latest/", "name": "ZODB", "description": "A native object database for Python. A key-value and object graph database."} 353 | ] 354 | }, 355 | { 356 | "title" : "Database Drivers", 357 | "description": "Libraries for connecting and operating databases.", 358 | "categories": [ 359 | { 360 | "title": "MySQL - [awesome-mysql](http://shlomi-noach.github.io/awesome-mysql/)", 361 | "items": [ 362 | {"url": "PyMySQL/mysqlclient-python"}, 363 | {"url": "https://pythonhosted.org/oursql/", "name": "oursql", "description": "A better MySQL connector with support for native prepared statements and BLOBs."}, 364 | {"url": "PyMySQL/PyMySQL"} 365 | ] 366 | }, 367 | { 368 | "title": "PostgreSQL - [awesome-postgres](https://github.com/dhamaniasad/awesome-postgres)", 369 | "items": [ 370 | {"url": "http://initd.org/psycopg/", "name": "psycopg2", "description": "The most popular PostgreSQL adapter for Python."}, 371 | {"url": "gmr/queries"}, 372 | {"url": "wulczer/txpostgres"} 373 | ] 374 | }, 375 | { 376 | "title": "Other Relational Databases", 377 | "items": [ 378 | {"url": "http://rogerbinns.github.io/apsw/", "name": "apsw", "description": "Another Python SQLite wrapper."}, 379 | {"url": "pudo/dataset"}, 380 | {"url": "http://www.pymssql.org/en/latest/", "name": "pymssql", "description": "A simple database interface to Microsoft SQL Server."} 381 | ] 382 | }, 383 | { 384 | "title": "NoSQL Databases", 385 | "items": [ 386 | {"url": "datastax/python-driver"}, 387 | {"url": "wbolster/happybase"}, 388 | {"url": "dpkp/kafka-python"}, 389 | {"url": "http://py2neo.org/2.0/", "name": "py2neo", "description": "Python wrapper client for Neo4j's restful interface."}, 390 | {"url": "https://docs.mongodb.com/ecosystem/drivers/python/", "name": "PyMongo", "description": "The official Python client for MongoDB."}, 391 | {"url": "andymccurdy/redis-py"} 392 | ] 393 | }, 394 | { 395 | "title": "Asynchronous Clients", 396 | "items": [ 397 | {"url": "mongodb/motor"}, 398 | {"url": "driftx/Telephus"}, 399 | {"url": "deldotdr/txRedis"} 400 | ] 401 | } 402 | ] 403 | }, 404 | { 405 | "title" : "Date and Time", 406 | "description": "Libraries for working with dates and times.", 407 | "items": [ 408 | {"url": "KoffeinFlummi/Chronyk"}, 409 | {"url": "dateutil/dateutil"}, 410 | {"url": "myusuf3/delorean"}, 411 | {"url": "zachwill/moment"}, 412 | {"url": "sdispater/pendulum"}, 413 | {"url": "shinux/PyTime"}, 414 | {"url": "https://launchpad.net/pytz", "name": "pytz", "description": "World timezone definitions, modern and historical. Brings the [tz database](https://en.wikipedia.org/wiki/Tz_database) into Python."}, 415 | {"url": "dirn/When.py"}, 416 | {"url": "kennethreitz/maya"} 417 | ] 418 | }, 419 | { 420 | "title" : "Debugging Tools", 421 | "description": "Libraries for debugging code.", 422 | "categories": [ 423 | { 424 | "title": "pdb-like Debugger", 425 | "items": [ 426 | {"url": "https://pypi.python.org/pypi/ipdb", "name": "ipdb", "description": "IPython-enabled [pdb](https://docs.python.org/3/library/pdb.html)."}, 427 | {"url": "https://pypi.python.org/pypi/pdbpp/", "name": "pdb++", "description": "Another drop-in replacement for pdb."}, 428 | {"url": "https://pypi.python.org/pypi/pudb", "name": "pudb", "description": "A full-screen, console-based Python debugger."}, 429 | {"url": "ionelmc/python-remote-pdb"}, 430 | {"url": "Kozea/wdb"} 431 | ] 432 | }, 433 | { 434 | "title": "Profiler", 435 | "items": [ 436 | {"url": "rkern/line_profiler"}, 437 | {"url": "fabianp/memory_profiler"}, 438 | {"url": "what-studio/profiling"}, 439 | {"url": "benfred/py-spy"}, 440 | {"url": "uber/pyflame"}, 441 | {"url": "nvdv/vprof"} 442 | ] 443 | }, 444 | { 445 | "title": "Others", 446 | "items": [ 447 | {"url": "gruns/icecream"}, 448 | {"url": "jazzband/django-debug-toolbar"}, 449 | {"url": "dcramer/django-devserver"}, 450 | {"url": "mgood/flask-debugtoolbar"}, 451 | {"url": "ionelmc/python-hunter"}, 452 | {"url": "khamidou/lptrace"}, 453 | {"url": "ionelmc/python-manhole"}, 454 | {"url": "eliben/pyelftools"}, 455 | {"url": "google/pyringe"} 456 | ] 457 | } 458 | ] 459 | }, 460 | { 461 | "title" : "Deep Learning", 462 | "description": "Frameworks for Neural Networks and Deep Learning. See: [awesome-deep-learning](https://github.com/ChristosChristofidis/awesome-deep-learning).", 463 | "items": [ 464 | {"url": "BVLC/caffe"}, 465 | {"url": "fchollet/keras"}, 466 | {"url": "dmlc/mxnet"}, 467 | {"url": "http://neupy.com/pages/home.html", "name": "Neupy", "description": "Running and testing different Artificial Neural Networks algorithms."}, 468 | {"url": "http://pytorch.org/", "name": "Pytorch", "description": "Tensors and Dynamic neural networks in Python with strong GPU acceleration."}, 469 | {"url": "SerpentAI/SerpentAI"}, 470 | {"url": "tensorflow/tensorflow"}, 471 | {"url": "Theano/Theano"} 472 | ] 473 | }, 474 | { 475 | "title" : "DevOps Tools", 476 | "description": "Software and libraries for DevOps.", 477 | "items": [ 478 | {"url": "ansible/ansible"}, 479 | {"url": "http://cloudinit.readthedocs.io/en/latest/", "name": "Cloud-Init", "description": "A multi-distribution package that handles early initialization of a cloud instance."}, 480 | {"url": "sebastien/cuisine"}, 481 | {"url": "https://docs.docker.com/compose/", "name": "Docker Compose", "description": "Fast, isolated development environments using [Docker](https://www.docker.com/)."}, 482 | {"url": "http://www.fabfile.org/", "name": "Fabric", "description": "A simple, Pythonic tool for remote execution and deployment."}, 483 | {"url": "fabtools/fabtools"}, 484 | {"url": "ddollar/foreman"}, 485 | {"url": "https://www.openstack.org/", "name": "OpenStack", "description": "Open source software for building private and public clouds."}, 486 | {"url": "pexpect/pexpect"}, 487 | {"url": "giampaolo/psutil"}, 488 | {"url": "saltstack/salt"}, 489 | {"url": "Supervisor/supervisor"} 490 | ] 491 | }, 492 | { 493 | "title" : "Distribution", 494 | "description": "Libraries to create packaged executables for release distribution.", 495 | "items": [ 496 | {"url": "spotify/dh-virtualenv"}, 497 | {"url": "http://nuitka.net/", "name": "Nuitka", "description": "Compile scripts, modules, packages to an executable or extension module."}, 498 | {"url": "http://pythonhosted.org/py2app/", "name": "py2app", "description": "Freezes Python scripts (Mac OS X)."}, 499 | {"url": "http://www.py2exe.org/", "name": "py2exe", "description": "Freezes Python scripts (Windows)."}, 500 | {"url": "pyinstaller/pyinstaller"}, 501 | {"url": "http://pynsist.readthedocs.io/en/latest/", "name": "pynsist", "description": "A tool to build Windows installers, installers bundle Python itself."} 502 | ] 503 | }, 504 | { 505 | "title" : "Documentation", 506 | "description": "Libraries for generating project documentation.", 507 | "items": [ 508 | {"url": "http://www.sphinx-doc.org/en/latest/", "name": "Sphinx", "description": "Python Documentation generator."}, 509 | {"url": "yoloseem/awesome-sphinxdoc"}, 510 | {"url": "http://www.mkdocs.org/", "name": "MkDocs", "description": "Markdown friendly documentation generator."}, 511 | {"url": "BurntSushi/pdoc"}, 512 | {"url": "pycco-docs/pycco"} 513 | ] 514 | }, 515 | { 516 | "title" : "Downloader", 517 | "description": "Libraries for downloading.", 518 | "items": [ 519 | {"url": "s3tools/s3cmd"}, 520 | {"url": "bloomreach/s4cmd"}, 521 | {"url": "http://you-get.org/", "name": "you-get", "description": "A YouTube/Youku/Niconico video downloader written in Python 3."}, 522 | {"url": "http://rg3.github.io/youtube-dl/", "name": "youtube-dl", "description": "A small command-line program to download videos from YouTube."} 523 | ] 524 | }, 525 | { 526 | "title" : "E-commerce", 527 | "description": "Frameworks and libraries for e-commerce and payments.", 528 | "items": [ 529 | {"url": "lxneng/alipay"}, 530 | {"url": "stephenmcd/cartridge"}, 531 | {"url": "http://oscarcommerce.com/", "name": "django-oscar", "description": "An open-source e-commerce framework for Django."}, 532 | {"url": "awesto/django-shop"}, 533 | {"url": "agiliq/merchant"}, 534 | {"url": "carlospalol/money"}, 535 | {"url": "Alir3z4/python-currencies"}, 536 | {"url": "MicroPyramid/forex-python"}, 537 | {"url": "http://getsaleor.com/", "name": "saleor", "description": "An e-commerce storefront for Django."}, 538 | {"url": "https://www.shuup.com/en/", "name": "shoop", "description": "An open source E-Commerce platform based on Django."} 539 | ] 540 | }, 541 | { 542 | "title" : "Editor Plugins and IDEs", 543 | "categories": [ 544 | { 545 | "title": "Emacs", 546 | "items": [ 547 | {"url": "jorgenschaefer/elpy"} 548 | ] 549 | }, 550 | { 551 | "title": "Sublime Text", 552 | "items": [ 553 | {"url": "DamnWidget/anaconda"}, 554 | {"url": "srusskih/SublimeJEDI"} 555 | ] 556 | }, 557 | { 558 | "title": "Vim", 559 | "items": [ 560 | {"url": "davidhalter/jedi-vim"}, 561 | {"url": "python-mode/python-mode"}, 562 | {"url": "davidhalter/jedi"} 563 | ] 564 | }, 565 | { 566 | "title": "Visual Studio", 567 | "items": [ 568 | {"url": "Microsoft/PTVS"} 569 | ] 570 | }, 571 | { 572 | "title": "Visual Studio Code", 573 | "items": [ 574 | {"url": "DonJayamanne/pythonVSCode"}, 575 | {"url": "MagicStack/MagicPython"} 576 | ] 577 | }, 578 | { 579 | "title": "IDE", 580 | "items": [ 581 | {"url": "http://www.liclipse.com/", "name": "LiClipse", "description": "Free polyglot IDE based on Eclipse. Uses PyDev for Python support."}, 582 | {"url": "https://www.jetbrains.com/pycharm/", "name": "PyCharm", "description": "Commercial Python IDE by JetBrains. Has free community edition available."}, 583 | {"url": "spyder-ide/spyder"} 584 | ] 585 | } 586 | ] 587 | }, 588 | { 589 | "title" : "Email", 590 | "description": "Libraries for sending and parsing email.", 591 | "items": [ 592 | {"url": "http://tomekwojcik.github.io/envelopes/", "name": "envelopes", "description": "Mailing for human beings."}, 593 | {"url": "mailgun/flanker"}, 594 | {"url": "martinrusev/imbox"}, 595 | {"url": "kennethreitz/inbox.py"}, 596 | {"url": "zedshaw/lamson"}, 597 | {"url": "marrow/mailer"}, 598 | {"url": "modoboa/modoboa"}, 599 | {"url": "nylas/sync-engine"}, 600 | {"url": "kootenpv/yagmail"} 601 | ] 602 | }, 603 | { 604 | "title" : "Environment Management", 605 | "description": "Libraries for Python version and environment management.", 606 | "items": [ 607 | {"url": "kennethreitz/pipenv"}, 608 | {"url": "qw3rtman/p"}, 609 | {"url": "pyenv/pyenv"}, 610 | {"url": "https://docs.python.org/3/library/venv.html", "name": "venv", "description": "(Python standard library in Python 3.3+) Creating lightweight virtual environments."}, 611 | {"url": "https://pypi.python.org/pypi/virtualenv", "name": "virtualenv", "description": "A tool to create isolated Python environments."}, 612 | {"url": "https://pypi.python.org/pypi/virtualenvwrapper", "name": "virtualenvwrapper", "description": "A set of extensions to virtualenv."} 613 | ] 614 | }, 615 | { 616 | "title" : "Files", 617 | "description": "Libraries for file manipulation and MIME type detection.", 618 | "items": [ 619 | {"url": "https://docs.python.org/3/library/mimetypes.html", "name": "mimetypes", "description": "(Python standard library) Map filenames to MIME types."}, 620 | {"url": "jaraco/path.py"}, 621 | {"url": "https://docs.python.org/3/library/pathlib.html", "name": "pathlib", "description": "(Python standard library) An cross-platform, object-oriented path library."}, 622 | {"url": "pyfilesystem/pyfilesystem2"}, 623 | {"url": "ahupp/python-magic"}, 624 | {"url": "mikeorr/Unipath"}, 625 | {"url": "gorakhargosh/watchdog"} 626 | ] 627 | }, 628 | { 629 | "title" : "Foreign Function Interface", 630 | "description": "Libraries for providing foreign function interface.", 631 | "items": [ 632 | {"url": "https://pypi.python.org/pypi/cffi", "name": "cffi", "description": "Foreign Function Interface for Python calling C code."}, 633 | {"url": "https://docs.python.org/3/library/ctypes.html", "name": "ctypes", "description": "(Python standard library) Foreign Function Interface for Python calling C code."}, 634 | {"url": "https://mathema.tician.de/software/pycuda/", "name": "PyCUDA", "description": "A Python wrapper for Nvidia's CUDA API."}, 635 | {"url": "http://www.swig.org/Doc1.3/Python.html", "name": "SWIG", "description": "Simplified Wrapper and Interface Generator."} 636 | ] 637 | }, 638 | { 639 | "title" : "Forms", 640 | "description": "Libraries for working with forms.", 641 | "items": [ 642 | {"url": "Pylons/deform"}, 643 | {"url": "dyve/django-bootstrap3"}, 644 | {"url": "django-crispy-forms/django-crispy-forms"}, 645 | {"url": "WiserTogether/django-remote-forms"}, 646 | {"url": "wtforms/wtforms"} 647 | ] 648 | }, 649 | { 650 | "title" : "Functional Programming", 651 | "description": "Functional Programming with Python.", 652 | "items": [ 653 | {"url": "http://coconut-lang.org/", "name": "Coconut", "description": "Coconut is a variant of Python built for simple, elegant, Pythonic functional programming."}, 654 | {"url": "pytoolz/cytoolz"}, 655 | {"url": "kachayev/fn.py"}, 656 | {"url": "Suor/funcy"}, 657 | {"url": "pytoolz/toolz"} 658 | ] 659 | }, 660 | { 661 | "title" : "GUI", 662 | "description": "Libraries for working with graphical user interface applications.", 663 | "items": [ 664 | {"url": "https://docs.python.org/3/library/curses.html", "name": "curses", "description": "Built-in wrapper for [ncurses](http://www.gnu.org/software/ncurses/) used to create terminal GUI applications."}, 665 | {"url": "ChrisKnott/Eel"}, 666 | {"url": "nucleic/enaml"}, 667 | {"url": "zoofIO/flexx"}, 668 | {"url": "https://kivy.org/", "name": "kivy", "description": "A library for creating NUI applications, running on Windows, Linux, Mac OS X, Android and iOS."}, 669 | {"url": "https://bitbucket.org/pyglet/pyglet/wiki/Home", "name": "pyglet", "description": "A cross-platform windowing and multimedia library for Python."}, 670 | {"url": "https://wiki.gnome.org/Projects/PyGObject", "name": "PyGObject", "description": "Python Bindings for GLib/GObject/GIO/GTK+ (GTK+3)."}, 671 | {"url": "https://riverbankcomputing.com/software/pyqt/intro", "name": "PyQt", "description": "Python bindings for the [Qt](https://www.qt.io/) cross-platform application and UI framework, with support for both Qt v4 and Qt v5 frameworks."}, 672 | {"url": "https://wiki.qt.io/PySide", "name": "PySide", "description": "Python bindings for the [Qt](http://www.qt.io/) cross-platform application and UI framework, supporting the Qt v4 framework."}, 673 | {"url": "MikeTheWatchGuy/PySimpleGUI"}, 674 | {"url": "r0x0r/pywebview"}, 675 | {"url": "https://wiki.python.org/moin/TkInter", "name": "Tkinter", "description": "Tkinter is Python's de-facto standard GUI package."}, 676 | {"url": "pybee/toga"}, 677 | {"url": "http://urwid.org/", "name": "urwid", "description": "A library for creating terminal GUI applications with strong support for widgets, events, rich colors, etc."}, 678 | {"url": "https://wxpython.org/", "name": "wxPython", "description": "A blending of the wxWidgets C++ class library with the Python."} 679 | ] 680 | }, 681 | { 682 | "title" : "Game Development", 683 | "description": "Awesome game development libraries.", 684 | "items": [ 685 | {"url": "http://cocos2d.org/", "name": "Cocos2d", "description": "cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications. It is based on pyglet."}, 686 | {"url": "https://www.panda3d.org/", "name": "Panda3D", "description": "3D game engine developed by Disney and maintained by Carnegie Mellon's Entertainment Technology Center. Written in C++, completely wrapped in Python."}, 687 | {"url": "http://www.pygame.org/news.html", "name": "Pygame", "description": "Pygame is a set of Python modules designed for writing games."}, 688 | {"url": "http://www.ogre3d.org/tikiwiki/PyOgre", "name": "PyOgre", "description": "Python bindings for the Ogre 3D render engine, can be used for games, simulations, anything 3D."}, 689 | {"url": "http://pyopengl.sourceforge.net/", "name": "PyOpenGL", "description": "Python ctypes bindings for OpenGL and it's related APIs."}, 690 | {"url": "http://pysdl2.readthedocs.io/en/rel_0_9_5/", "name": "PySDL2", "description": "A ctypes based wrapper for the SDL2 library."}, 691 | {"url": "https://www.renpy.org/", "name": "RenPy", "description": "A Visual Novel engine."} 692 | ] 693 | }, 694 | { 695 | "title" : "Geolocation", 696 | "description": "Libraries for geocoding addresses and working with latitudes and longitudes.", 697 | "items": [ 698 | {"url": "SmileyChris/django-countries"}, 699 | {"url": "https://docs.djangoproject.com/en/dev/ref/contrib/gis/", "name": "GeoDjango", "description": "A world-class geographic web framework."}, 700 | {"url": "maxmind/geoip-api-python"}, 701 | {"url": "frewsxcv/python-geojson"}, 702 | {"url": "geopy/geopy"}, 703 | {"url": "appliedsec/pygeoip"} 704 | ] 705 | }, 706 | { 707 | "title" : "HTML Manipulation", 708 | "description": "Libraries for working with HTML and XML.", 709 | "items": [ 710 | {"url": "https://www.crummy.com/software/BeautifulSoup/bs4/doc/", "name": "BeautifulSoup", "description": "Providing Pythonic idioms for iterating, searching, and modifying HTML or XML."}, 711 | {"url": "mozilla/bleach"}, 712 | {"url": "https://pypi.python.org/pypi/cssutils/", "name": "cssutils", "description": "A CSS library for Python."}, 713 | {"url": "html5lib/html5lib-python"}, 714 | {"url": "http://lxml.de/", "name": "lxml", "description": "A very fast, easy-to-use and versatile library for handling HTML and XML."}, 715 | {"url": "pallets/markupsafe"}, 716 | {"url": "gawel/pyquery"}, 717 | {"url": "stchris/untangle"}, 718 | {"url": "http://weasyprint.org", "name": "WeasyPrint", "description": "A visual rendering engine for HTML and CSS that can export to PDF."}, 719 | {"url": "https://xmldataset.readthedocs.io/en/latest/", "name": "xmldataset", "description": "Simple XML Parsing."}, 720 | {"url": "martinblech/xmltodict"} 721 | ] 722 | }, 723 | { 724 | "title" : "HTTP", 725 | "description": "Libraries for working with HTTP.", 726 | "items": [ 727 | {"url": "kennethreitz/grequests"}, 728 | {"url": "httplib2/httplib2"}, 729 | {"url": "http://docs.python-requests.org/en/latest/", "name": "requests", "description": "HTTP Requests for Humans™."}, 730 | {"url": "twisted/treq"}, 731 | {"url": "shazow/urllib3"} 732 | ] 733 | }, 734 | { 735 | "title" : "Hardware", 736 | "description": "Libraries for programming with hardware.", 737 | "items": [ 738 | {"url": "http://inotool.org/", "name": "ino", "description": "Command line toolkit for working with [Arduino](https://www.arduino.cc/)."}, 739 | {"url": "boppreh/keyboard"}, 740 | {"url": "boppreh/mouse"}, 741 | {"url": "http://www.pingo.io/", "name": "Pingo", "description": "Pingo provides a uniform API to program devices like the Raspberry Pi, pcDuino, Intel Galileo, etc."}, 742 | {"url": "SavinaRoja/PyUserInput"}, 743 | {"url": "secdev/scapy"}, 744 | {"url": "rockymeza/wifi"} 745 | ] 746 | }, 747 | { 748 | "title" : "Image Processing", 749 | "description": "Libraries for manipulating images.", 750 | "items": [ 751 | {"url": "rossgoodwin/hmap"}, 752 | {"url": "https://sourceforge.net/projects/imgseek/", "name": "imgSeek", "description": "A project for searching a collection of images using visual similarity."}, 753 | {"url": "hhatto/nude.py"}, 754 | {"url": "daboth/pagan"}, 755 | {"url": "python-pillow/Pillow"}, 756 | {"url": "https://pythonhosted.org/pyBarcode/", "name": "pyBarcode", "description": "Create barcodes in Python without needing PIL."}, 757 | {"url": "ajkumar25/pygram"}, 758 | {"url": "lincolnloop/python-qrcode"}, 759 | {"url": "fogleman/Quads"}, 760 | {"url": "http://scikit-image.org/", "name": "scikit-image", "description": "A Python library for (scientific) image processing."}, 761 | {"url": "thumbor/thumbor"}, 762 | {"url": "dahlia/wand"} 763 | ] 764 | }, 765 | { 766 | "title" : "Implementations", 767 | "description": "Implementations of Python.", 768 | "items": [ 769 | {"url": "metawilm/cl-python"}, 770 | {"url": "python/cpython"}, 771 | {"url": "http://cython.org/", "name": "Cython", "description": "Optimizing Static Compiler for Python. Uses type mixins to compile Python into C or C++ modules resulting in large performance gains"}, 772 | {"url": "google/grumpy"}, 773 | {"url": "IronLanguages/ironpython3"}, 774 | {"url": "https://hg.python.org/jython", "name": "Jython", "description": "Implementation of Python programming language written in Java for the Java virtual machine (JVM)."}, 775 | {"url": "micropython/micropython"}, 776 | {"url": "http://numba.pydata.org/", "name": "Numba", "description": "Python JIT compiler to LLVM aimed at scientific Python."}, 777 | {"url": "Maratyszcza/PeachPy"}, 778 | {"url": "Microsoft/Pyjion"}, 779 | {"url": "https://bitbucket.org/pypy/pypy", "name": "PyPy", "description": "Implementation of the Python programming language written in RPython and translated into C. PyPy focuses on speed, efficiency and compatibility with the original CPython interpreter. The interpreter uses black magic to make Python very fast without having to add in additional type information."}, 780 | {"url": "ebranca/owasp-pysec"}, 781 | {"url": "dropbox/pyston"}, 782 | {"url": "stackless-dev/stackless"} 783 | ] 784 | }, 785 | { 786 | "title" : "Interactive Interpreter", 787 | "description": "Interactive Python interpreters (REPL).", 788 | "items": [ 789 | {"url": "bpython/bpython"}, 790 | {"url": "https://jupyter.org", "name": "Jupyter Notebook (IPython)", "description": "A rich toolkit to help you make the most out of using Python interactively."}, 791 | {"url": "markusschanta/awesome-jupyter"}, 792 | {"url": "jonathanslenders/python-prompt-toolkit"} 793 | ] 794 | }, 795 | { 796 | "title" : "Internationalization", 797 | "description": "Libraries for working with i18n.", 798 | "items": [ 799 | {"url": "http://babel.pocoo.org/en/latest/", "name": "Babel", "description": "An internationalization library for Python."}, 800 | {"url": "ovalhub/pyicu"} 801 | ] 802 | }, 803 | { 804 | "title" : "Job Scheduler", 805 | "description": "Libraries for scheduling jobs.", 806 | "items": [ 807 | {"url": "http://apscheduler.readthedocs.io/en/latest/", "name": "APScheduler", "description": "A light but powerful in-process task scheduler that lets you schedule functions."}, 808 | {"url": "thauber/django-schedule"}, 809 | {"url": "http://pydoit.org/", "name": "doit", "description": "A task runner and build tool."}, 810 | {"url": "gunnery/gunnery"}, 811 | {"url": "http://pythonhosted.org/joblib/index.html", "name": "Joblib", "description": "A set of tools to provide lightweight pipelining in Python."}, 812 | {"url": "fengsp/plan"}, 813 | {"url": "dbader/schedule"}, 814 | {"url": "knipknap/SpiffWorkflow"}, 815 | {"url": "https://docs.openstack.org/developer/taskflow/", "name": "TaskFlow", "description": "A Python library that helps to make task execution easy, consistent and reliable."} 816 | ] 817 | }, 818 | { 819 | "title" : "Logging", 820 | "description": "Libraries for generating and working with logs.", 821 | "items": [ 822 | {"url": "ScatterHQ/eliot"}, 823 | {"url": "http://logbook.readthedocs.io/en/stable/", "name": "logbook", "description": "Logging replacement for Python."}, 824 | {"url": "https://docs.python.org/3/library/logging.html", "name": "logging", "description": "(Python standard library) Logging facility for Python."}, 825 | {"url": "getsentry/raven-python"} 826 | ] 827 | }, 828 | { 829 | "title" : "Machine Learning", 830 | "description": "Libraries for Machine Learning. See: [awesome-machine-learning](https://github.com/josephmisiti/awesome-machine-learning#python).", 831 | "items": [ 832 | {"url": "h2oai/h2o-3"}, 833 | {"url": "benhamner/Metrics"}, 834 | {"url": "numenta/nupic"}, 835 | {"url": "http://scikit-learn.org/", "name": "scikit-learn", "description": "The most popular Python library for Machine Learning."}, 836 | {"url": "http://spark.apache.org/docs/latest/ml-guide.html", "name": "Spark ML", "description": "[Apache Spark](http://spark.apache.org/)'s scalable Machine Learning library."}, 837 | {"url": "JohnLangford/vowpal_wabbit"}, 838 | {"url": "dmlc/xgboost"} 839 | ] 840 | }, 841 | { 842 | "title" : "Microsoft Windows", 843 | "description": "Python programming on Microsoft Windows.", 844 | "items": [ 845 | {"url": "http://python-xy.github.io/", "name": "Python(x,y)", "description": "Scientific-applications-oriented Python Distribution based on Qt and Spyder."}, 846 | {"url": "http://www.lfd.uci.edu/~gohlke/pythonlibs/", "name": "pythonlibs", "description": "Unofficial Windows binaries for Python extension packages."}, 847 | {"url": "pythonnet/pythonnet"}, 848 | {"url": "https://sourceforge.net/projects/pywin32/", "name": "PyWin32", "description": "Python Extensions for Windows."}, 849 | {"url": "https://winpython.github.io/", "name": "WinPython", "description": "Portable development environment for Windows 7/8."} 850 | ] 851 | }, 852 | { 853 | "title" : "Miscellaneous", 854 | "description": "Useful libraries or tools that don't fit in the categories above.", 855 | "items": [ 856 | {"url": "jek/blinker"}, 857 | {"url": "pallets/itsdangerous"}, 858 | {"url": "mitsuhiko/pluginbase"}, 859 | {"url": "PacketPerception/pychievements"}, 860 | {"url": "http://www.tryton.org/", "name": "Tryton", "description": "A general purpose business framework."} 861 | ] 862 | }, 863 | { 864 | "title" : "Natural Language Processing", 865 | "description": "Libraries for working with human languages.", 866 | "items": [ 867 | {"url": "RaRe-Technologies/gensim"}, 868 | {"url": "fxsjy/jieba"}, 869 | {"url": "saffsd/langid.py"}, 870 | {"url": "http://www.nltk.org/", "name": "NLTK", "description": "A leading platform for building Python programs to work with human language data."}, 871 | {"url": "http://www.clips.ua.ac.be/pattern", "name": "Pattern", "description": "A web mining module for the Python."}, 872 | {"url": "aboSamoor/polyglot"}, 873 | {"url": "isnowfy/snownlp"}, 874 | {"url": "https://spacy.io/", "name": "spaCy", "description": "A library for industrial-strength natural language processing in Python and Cython."}, 875 | {"url": "sloria/TextBlob"}, 876 | {"url": "PetrochukM/PyTorch-NLP"} 877 | ] 878 | }, 879 | { 880 | "title" : "Network Virtualization", 881 | "description": "Tools and libraries for Virtual Networking and SDN (Software Defined Networking).", 882 | "items": [ 883 | {"url": "http://mininet.org/", "name": "Mininet", "description": "A popular network emulator and API written in Python."}, 884 | {"url": "noxrepo/pox"}, 885 | {"url": "http://frenetic-lang.org/pyretic/", "name": "Pyretic", "description": "A member of the Frenetic family of SDN programming languages that provides powerful abstractions over network switches or emulators."}, 886 | {"url": "sdn-ixp/internet2award"} 887 | ] 888 | }, 889 | { 890 | "title" : "Networking", 891 | "description": "Libraries for networking programming.", 892 | "items": [ 893 | {"url": "https://docs.python.org/3/library/asyncio.html", "name": "asyncio", "description": "(Python standard library) Asynchronous I/O, event loop, coroutines and tasks."}, 894 | {"url": "timofurrer/awesome-asyncio"}, 895 | {"url": "dieseldev/diesel"}, 896 | {"url": "quantmind/pulsar"}, 897 | {"url": "http://zeromq.github.io/pyzmq/", "name": "pyzmq", "description": "A Python wrapper for the ZeroMQ message library."}, 898 | {"url": "https://twistedmatrix.com/trac/", "name": "Twisted", "description": "An event-driven networking engine."}, 899 | {"url": "smira/txZMQ"}, 900 | {"url": "napalm-automation/napalm"} 901 | ] 902 | }, 903 | { 904 | "title" : "News Feed", 905 | "description": "Libraries for building user's activities.", 906 | "items": [ 907 | {"url": "justquick/django-activity-stream"}, 908 | {"url": "tschellenbach/Stream-Framework"} 909 | ] 910 | }, 911 | { 912 | "title" : "ORM", 913 | "description": "Libraries that implement Object-Relational Mapping or data mapping techniques.", 914 | "categories": [ 915 | { 916 | "title": "Relational Databases", 917 | "items": [ 918 | {"url": "https://docs.djangoproject.com/en/dev/topics/db/models/", "name": "Django Models", "description": "A part of Django."}, 919 | {"url": "http://www.sqlalchemy.org/", "name": "SQLAlchemy", "description": "The Python SQL Toolkit and Object Relational Mapper."}, 920 | {"url": "dahlia/awesome-sqlalchemy"}, 921 | {"url": "https://orator-orm.com", "name": "Orator", "description": " The Orator ORM provides a simple yet beautiful ActiveRecord implementation."}, 922 | {"url": "coleifer/peewee"}, 923 | {"url": "https://ponyorm.com/", "name": "PonyORM", "description": "ORM that provides a generator-oriented interface to SQL."}, 924 | {"url": "web2py/pydal"}, 925 | {"url": "https://pypi.python.org/pypi/python-sql", "name": "python-sql", "description": "Write SQL queries pythonically."} 926 | ] 927 | }, 928 | { 929 | "title": "NoSQL Databases", 930 | "items": [ 931 | {"url": "django-nonrel/mongodb-engine"}, 932 | {"url": "stevearc/flywheel"}, 933 | {"url": "stephenmcd/hot-redis"}, 934 | {"url": "http://mongoengine.org/", "name": "MongoEngine", "description": "A Python Object-Document-Mapper for working with MongoDB."}, 935 | {"url": "pynamodb/PynamoDB"}, 936 | {"url": "kiddouk/redisco"} 937 | ] 938 | }, 939 | { 940 | "title": "Others", 941 | "items": [ 942 | {"url": "terrible-ideas/butterdb"}, 943 | {"url": "pudo/dataset"} 944 | ] 945 | } 946 | ] 947 | }, 948 | { 949 | "title" : "Package Management", 950 | "description": "Libraries for package and dependency management.", 951 | "items": [ 952 | {"url": "https://pip.pypa.io/en/stable/", "name": "pip", "description": "The Python package and dependency manager [Python Package Index](https://pypi.python.org/pypi)."}, 953 | {"url": "conda/conda"}, 954 | {"url": "http://clarete.li/curdling/", "name": "Curdling", "description": "Curdling is a command line tool for managing Python packages."}, 955 | {"url": "jazzband/pip-tools"}, 956 | {"url": "http://pythonwheels.com/", "name": "wheel", "description": "The new standard of Python distribution and are intended to replace eggs."} 957 | ] 958 | }, 959 | { 960 | "title" : "Package Repositories", 961 | "description": "Local PyPI repository server and proxies.", 962 | "items": [ 963 | {"url": "pypa/warehouse"}, 964 | {"url": "https://bitbucket.org/pypa/bandersnatch", "name": "bandersnatch", "description": "PyPI mirroring tool provided by Python Packaging Authority (PyPA)."}, 965 | {"url": "http://doc.devpi.net/latest/", "name": "devpi", "description": "PyPI server and packaging/testing/release tool."}, 966 | {"url": "jazzband/localshop"} 967 | ] 968 | }, 969 | { 970 | "title" : "Permissions", 971 | "description": "Libraries that allow or deny users access to data or functionality.", 972 | "items": [ 973 | {"url": "neuman/python-carteblanche"}, 974 | {"url": "django-guardian/django-guardian"}, 975 | {"url": "dfunckt/django-rules"} 976 | ] 977 | }, 978 | { 979 | "title" : "Processes", 980 | "description": "Libraries for starting and communicating with OS processes.", 981 | "items": [ 982 | {"url": "kennethreitz/delegator.py"}, 983 | {"url": "http://sarge.readthedocs.io/en/latest/", "name": "sarge", "description": "Yet another wrapper for subprocess."}, 984 | {"url": "amoffat/sh"} 985 | ] 986 | }, 987 | { 988 | "title" : "Queue", 989 | "description": "Libraries for working with event and task queues.", 990 | "items": [ 991 | {"url": "http://www.celeryproject.org/", "name": "celery", "description": "An asynchronous task queue/job queue based on distributed message passing."}, 992 | {"url": "coleifer/huey"}, 993 | {"url": "pricingassistant/mrq"}, 994 | {"url": "http://python-rq.org/", "name": "rq", "description": "Simple job queues for Python."}, 995 | {"url": "rdegges/simpleq"} 996 | ] 997 | }, 998 | { 999 | "title" : "Recommender Systems", 1000 | "description": "Libraries for building recommender systems.", 1001 | "items": [ 1002 | {"url": "spotify/annoy"}, 1003 | {"url": "ibayer/fastFM"}, 1004 | {"url": "benfred/implicit"}, 1005 | {"url": "guestwalk/libffm"}, 1006 | {"url": "lyst/lightfm"}, 1007 | {"url": "maciejkula/spotlight"}, 1008 | {"url": "http://surpriselib.com", "name": "surprise", "description": "A scikit for building and analyzing recommender systems."}, 1009 | {"url": "jfkirk/tensorrec"} 1010 | ] 1011 | }, 1012 | { 1013 | "title" : "RESTful API", 1014 | "description": "Libraries for developing RESTful APIs.", 1015 | "categories": [ 1016 | { 1017 | "title": "Django", 1018 | "items": [ 1019 | {"url": "http://www.django-rest-framework.org/", "name": "django-rest-framework", "description": "A powerful and flexible toolkit to build web APIs."}, 1020 | {"url": "http://tastypieapi.org/", "name": "django-tastypie", "description": "Creating delicious APIs for Django apps."} 1021 | ] 1022 | }, 1023 | { 1024 | "title": "Flask", 1025 | "items": [ 1026 | {"url": "pyeve/eve"}, 1027 | {"url": "marselester/flask-api-utils"}, 1028 | {"url": "http://www.flaskapi.org/", "name": "flask-api", "description": "Browsable Web APIs for Flask."}, 1029 | {"url": "flask-restful/flask-restful"}, 1030 | {"url": "jfinkels/flask-restless"} 1031 | ] 1032 | }, 1033 | { 1034 | "title": "Pyramid", 1035 | "items": [ 1036 | {"url": "Cornices/cornice"} 1037 | ] 1038 | }, 1039 | { 1040 | "title": "Framework agnostic", 1041 | "items": [ 1042 | {"url": "http://falconframework.org/", "name": "falcon", "description": "A high-performance framework for building cloud APIs and web app backends."}, 1043 | {"url": "timothycrosley/hug"}, 1044 | {"url": "toastdriven/restless"}, 1045 | {"url": "vertical-knowledge/ripozo"}, 1046 | {"url": "jeffknupp/sandman"}, 1047 | {"url": "encode/apistar"} 1048 | ] 1049 | } 1050 | ] 1051 | }, 1052 | { 1053 | "title" : "Robotics", 1054 | "description": "Libraries for robotics.", 1055 | "items": [ 1056 | {"url": "AtsushiSakai/PythonRobotics"}, 1057 | {"url": "http://wiki.ros.org/rospy", "name": "rospy", "description": "This is a library for ROS (Robot Operating System)."} 1058 | ] 1059 | }, 1060 | { 1061 | "title" : "RPC Servers", 1062 | "description": "RPC-compatible servers.", 1063 | "items": [ 1064 | {"url": "joshmarshall/jsonrpclib"}, 1065 | {"url": "https://docs.python.org/3/library/xmlrpc.server.html", "name": "SimpleXMLRPCServer", "description": "(Python standard library) Simple XML-RPC server implementation, single-threaded."}, 1066 | {"url": "0rpc/zerorpc-python"} 1067 | ] 1068 | }, 1069 | { 1070 | "title" : "Science", 1071 | "description": "Libraries for scientific computing.", 1072 | "items": [ 1073 | {"url": "http://www.astropy.org/", "name": "astropy", "description": "A community Python library for Astronomy."}, 1074 | {"url": "chapmanb/bcbio-nextgen"}, 1075 | {"url": "chapmanb/bcbb"}, 1076 | {"url": "http://biopython.org/wiki/Main_Page", "name": "Biopython", "description": "Biopython is a set of freely available tools for biological computation."}, 1077 | {"url": "http://cclib.github.io/", "name": "cclib", "description": "A library for parsing and interpreting the results of computational chemistry packages."}, 1078 | {"url": "http://colour-science.org/", "name": "Colour", "description": "A colour science package implementing a comprehensive number of colour theory transformations and algorithms."}, 1079 | {"url": "https://networkx.github.io/", "name": "NetworkX", "description": "A high-productivity software for complex networks."}, 1080 | {"url": "http://nipy.org", "name": "NIPY", "description": "A collection of neuroimaging toolkits."}, 1081 | {"url": "http://www.numpy.org/", "name": "NumPy", "description": "A fundamental package for scientific computing with Python."}, 1082 | {"url": "http://openbabel.org/wiki/Main_Page", "name": "Open Babel", "description": "A chemical toolbox designed to speak the many languages of chemical data."}, 1083 | {"url": "obspy/obspy"}, 1084 | {"url": "http://www.pydy.org/", "name": "PyDy", "description": "Short for Python Dynamics, used to assist with workflow in the modeling of dynamic motion."}, 1085 | {"url": "pymc-devs/pymc3"}, 1086 | {"url": "http://qutip.org/", "name": "QuTiP", "description": "Quantum Toolbox in Python."}, 1087 | {"url": "http://www.rdkit.org/", "name": "RDKit", "description": "Cheminformatics and Machine Learning Software."}, 1088 | {"url": "https://www.scipy.org/", "name": "SciPy", "description": "A Python-based ecosystem of open-source software for mathematics, science, and engineering."}, 1089 | {"url": "statsmodels/statsmodels"}, 1090 | {"url": "sympy/sympy"}, 1091 | {"url": "quantopian/zipline"}, 1092 | {"url": "https://bitbucket.org/simpy/simpy", "name": "SimPy", "description": " A process-based discrete-event simulation framework."} 1093 | ] 1094 | }, 1095 | { 1096 | "title" : "Search", 1097 | "description": "Libraries and software for indexing and performing search queries on data.", 1098 | "items": [ 1099 | {"url": "django-haystack/django-haystack"}, 1100 | {"url": "elastic/elasticsearch-dsl-py"}, 1101 | {"url": "https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html", "name": "elasticsearch-py", "description": "The official low-level Python client for [Elasticsearch](https://www.elastic.co/products/elasticsearch)."}, 1102 | {"url": "seek-ai/esengine"}, 1103 | {"url": "django-haystack/pysolr"}, 1104 | {"url": "edsu/solrpy"}, 1105 | {"url": "http://whoosh.readthedocs.io/en/latest/", "name": "Whoosh", "description": "A fast, pure Python search engine library."} 1106 | ] 1107 | }, 1108 | { 1109 | "title" : "Serialization", 1110 | "description": "Libraries for serializing complex data types", 1111 | "items": [ 1112 | {"url": "marshmallow-code/marshmallow"} 1113 | ] 1114 | }, 1115 | { 1116 | "title" : "Serverless Frameworks", 1117 | "description": "Frameworks for developing serverless Python code.", 1118 | "items": [ 1119 | {"url": "apex/apex"}, 1120 | {"url": "nficano/python-lambda"}, 1121 | {"url": "Miserlou/Zappa"} 1122 | ] 1123 | }, 1124 | { 1125 | "title" : "Specific Formats Processing", 1126 | "description": "Libraries for parsing and manipulating specific text formats.", 1127 | "categories": [ 1128 | { 1129 | "title": "General", 1130 | "items": [ 1131 | {"url": "kennethreitz/tablib"} 1132 | ] 1133 | }, 1134 | { 1135 | "title": "Office", 1136 | "items": [ 1137 | {"url": "brianray/mm"}, 1138 | {"url": "https://openpyxl.readthedocs.io/en/stable/", "name": "openpyxl", "description": "A library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files."}, 1139 | {"url": "pyexcel/pyexcel"}, 1140 | {"url": "python-openxml/python-docx"}, 1141 | {"url": "scanny/python-pptx"}, 1142 | {"url": "http://relatorio.tryton.org/", "name": "relatorio", "description": "Templating OpenDocument files."}, 1143 | {"url": "dagwieers/unoconv"}, 1144 | {"url": "https://xlsxwriter.readthedocs.io", "name": "XlsxWriter", "description": "A Python module for creating Excel .xlsx files."}, 1145 | {"url": "https://www.xlwings.org", "name": "xlwings", "description": "A BSD-licensed library that makes it easy to call Python from Excel and vice versa."}, 1146 | {"url": "python-excel/xlrd"} 1147 | ] 1148 | }, 1149 | { 1150 | "title": "PDF", 1151 | "items": [ 1152 | {"url": "euske/pdfminer"}, 1153 | {"url": "mstamy2/PyPDF2"}, 1154 | {"url": "http://www.reportlab.com/opensource/", "name": "ReportLab", "description": "Allowing Rapid creation of rich PDF documents."} 1155 | ] 1156 | }, 1157 | { 1158 | "title": "Markdown", 1159 | "items": [ 1160 | {"url": "lepture/mistune"}, 1161 | {"url": "waylan/Python-Markdown"} 1162 | ] 1163 | }, 1164 | { 1165 | "title": "YAML", 1166 | "items": [ 1167 | {"url": "http://pyyaml.org/", "name": "PyYAML", "description": "YAML implementations for Python."} 1168 | ] 1169 | }, 1170 | { 1171 | "title": "CSV", 1172 | "items": [ 1173 | {"url": "wireservice/csvkit"} 1174 | ] 1175 | }, 1176 | { 1177 | "title": "Archive", 1178 | "items": [ 1179 | {"url": "mitsuhiko/unp"} 1180 | ] 1181 | } 1182 | ] 1183 | }, 1184 | { 1185 | "title" : "Static Site Generator", 1186 | "description": "Static site generator is a software that takes some text + templates as input and produces HTML files on the output.", 1187 | "items": [ 1188 | {"url": "eudicots/Cactus"}, 1189 | {"url": "http://hyde.github.io/", "name": "Hyde", "description": "Jinja2-based static web site generator."}, 1190 | {"url": "https://www.getlektor.com/", "name": "Lektor", "description": "An easy to use static CMS and blog engine."}, 1191 | {"url": "https://www.getnikola.com/", "name": "Nikola", "description": "A static website and blog generator."}, 1192 | {"url": "https://blog.getpelican.com/", "name": "Pelican", "description": "Uses Markdown or ReST for content and Jinja 2 for themes. Supports DVCS, Disqus. AGPL."}, 1193 | {"url": "http://tinkerer.me/", "name": "Tinkerer", "description": "Tinkerer is a blogging engine/.static website generator powered by Sphinx."} 1194 | ] 1195 | }, 1196 | { 1197 | "title" : "Tagging", 1198 | "description": "Libraries for tagging items.", 1199 | "items": [ 1200 | {"url": "alex/django-taggit"} 1201 | ] 1202 | }, 1203 | { 1204 | "title" : "Template Engine", 1205 | "description": "Libraries and tools for templating and lexing.", 1206 | "items": [ 1207 | {"url": "https://genshi.edgewall.org/", "name": "Genshi", "description": "Python templating toolkit for generation of web-aware output."}, 1208 | {"url": "pallets/jinja"}, 1209 | {"url": "http://www.makotemplates.org/", "name": "Mako", "description": "Hyperfast and lightweight templating for the Python platform."} 1210 | ] 1211 | }, 1212 | { 1213 | "title" : "Testing", 1214 | "description": "Libraries for testing codebases and generating test data.", 1215 | "categories": [ 1216 | { 1217 | "title": "Testing Frameworks", 1218 | "items": [ 1219 | {"url": "HypothesisWorks/hypothesis-python"}, 1220 | {"url": "http://nestorsalceda.github.io/mamba/", "name": "mamba", "description": "The definitive testing tool for Python. Born under the banner of BDD."}, 1221 | {"url": "nose-devs/nose"}, 1222 | {"url": "nose-devs/nose2"}, 1223 | {"url": "https://docs.pytest.org/en/latest/", "name": "pytest", "description": "A mature full-featured Python testing tool."}, 1224 | {"url": "robotframework/robotframework"}, 1225 | {"url": "https://docs.python.org/3/library/unittest.html", "name": "unittest", "description": "(Python standard library) Unit testing framework."} 1226 | ] 1227 | }, 1228 | { 1229 | "title": "Test Runners", 1230 | "items": [ 1231 | {"url": "CleanCut/green"}, 1232 | {"url": "https://tox.readthedocs.io/en/latest/", "name": "tox", "description": "Auto builds and tests distributions in multiple Python versions"} 1233 | ] 1234 | }, 1235 | { 1236 | "title": "GUI / Web Testing", 1237 | "items": [ 1238 | {"url": "locustio/locust"}, 1239 | {"url": "asweigart/pyautogui"}, 1240 | {"url": "https://pypi.python.org/pypi/selenium", "name": "Selenium", "description": "Python bindings for [Selenium](http://www.seleniumhq.org/) WebDriver."}, 1241 | {"url": "seatgeek/sixpack"}, 1242 | {"url": "cobrateam/splinter"} 1243 | ] 1244 | }, 1245 | { 1246 | "title": "Mock", 1247 | "items": [ 1248 | {"url": "https://pypi.python.org/pypi/doublex", "name": "doublex", "description": "Powerful test doubles framework for Python."}, 1249 | {"url": "spulec/freezegun"}, 1250 | {"url": "patrys/httmock"}, 1251 | {"url": "gabrielfalcao/HTTPretty"}, 1252 | {"url": "https://docs.python.org/3/library/unittest.mock.html", "name": "mock", "description": "(Python standard library) A mocking and patching library."}, 1253 | {"url": "mindflayer/python-mocket"}, 1254 | {"url": "getsentry/responses"}, 1255 | {"url": "kevin1024/vcrpy"} 1256 | ] 1257 | }, 1258 | { 1259 | "title": "Object Factories", 1260 | "items": [ 1261 | {"url": "FactoryBoy/factory_boy"}, 1262 | {"url": "klen/mixer"}, 1263 | {"url": "vandersonmota/model_mommy"} 1264 | ] 1265 | }, 1266 | { 1267 | "title": "Code Coverage", 1268 | "items": [ 1269 | {"url": "https://pypi.python.org/pypi/coverage", "name": "coverage", "description": "Code coverage measurement."} 1270 | ] 1271 | }, 1272 | { 1273 | "title": "Fake Data", 1274 | "items": [ 1275 | {"url": "lk-geimfari/mimesis"}, 1276 | {"url": "emirozer/fake2db"}, 1277 | {"url": "joke2k/faker"}, 1278 | {"url": "https://pypi.python.org/pypi/radar", "name": "radar", "description": "Generate random datetime / time."} 1279 | ] 1280 | }, 1281 | { 1282 | "title": "Error Handler", 1283 | "items": [ 1284 | {"url": "ajalt/fuckitpy"} 1285 | ] 1286 | } 1287 | ] 1288 | }, 1289 | { 1290 | "title" : "Text Processing", 1291 | "description": "Libraries for parsing and manipulating plain texts.", 1292 | "categories": [ 1293 | { 1294 | "title": "General", 1295 | "items": [ 1296 | {"url": "chardet/chardet"}, 1297 | {"url": "https://docs.python.org/3/library/difflib.html", "name": "difflib", "description": "(Python standard library) Helpers for computing deltas."}, 1298 | {"url": "LuminosoInsight/python-ftfy"}, 1299 | {"url": "seatgeek/fuzzywuzzy"}, 1300 | {"url": "davidaurelio/hashids-python"}, 1301 | {"url": "ztane/python-Levenshtein"}, 1302 | {"url": "vinta/pangu.py"}, 1303 | {"url": "pwaller/pyfiglet"}, 1304 | {"url": "mozillazg/python-pinyin"}, 1305 | {"url": "skorokithakis/shortuuid"}, 1306 | {"url": "orsinium/textdistance"}, 1307 | {"url": "https://pypi.python.org/pypi/Unidecode", "name": "unidecode", "description": "ASCII transliterations of Unicode text."}, 1308 | {"url": "moskytw/uniout"}, 1309 | {"url": "lxneng/xpinyin"} 1310 | ] 1311 | }, 1312 | { 1313 | "title": "Slugify", 1314 | "items": [ 1315 | {"url": "dimka665/awesome-slugify"}, 1316 | {"url": "un33k/python-slugify"}, 1317 | {"url": "mozilla/unicode-slugify"} 1318 | ] 1319 | }, 1320 | { 1321 | "title": "Parser", 1322 | "items": [ 1323 | {"url": "daviddrysdale/python-phonenumbers"}, 1324 | {"url": "http://www.dabeaz.com/ply/", "name": "PLY", "description": "Implementation of lex and yacc parsing tools for Python."}, 1325 | {"url": "http://pygments.org/", "name": "Pygments", "description": "A generic syntax highlighter."}, 1326 | {"url": "pyparsing/pyparsing"}, 1327 | {"url": "derek73/python-nameparser"}, 1328 | {"url": "selwin/python-user-agents"}, 1329 | {"url": "andialbrecht/sqlparse"} 1330 | ] 1331 | } 1332 | ] 1333 | }, 1334 | { 1335 | "title" : "Third-party APIs", 1336 | "description": "Libraries for accessing third party services APIs. See: [List of Python API Wrappers and Libraries](https://github.com/realpython/list-of-python-api-wrappers).", 1337 | "items": [ 1338 | {"url": "https://libcloud.apache.org/", "name": "apache-libcloud", "description": "One Python library for all clouds."}, 1339 | {"url": "boto/boto3"}, 1340 | {"url": "istrategylabs/django-wordpress"}, 1341 | {"url": "mobolic/facebook-sdk"}, 1342 | {"url": "jgorset/facepy"}, 1343 | {"url": "charlierguo/gmail"}, 1344 | {"url": "google/google-api-python-client"}, 1345 | {"url": "burnash/gspread"}, 1346 | {"url": "ryanmcgrath/twython"} 1347 | ] 1348 | }, 1349 | { 1350 | "title" : "URL Manipulation", 1351 | "description": "Libraries for parsing URLs.", 1352 | "items": [ 1353 | {"url": "gruns/furl"}, 1354 | {"url": "codeinthehole/purl"}, 1355 | {"url": "ellisonleao/pyshorteners"}, 1356 | {"url": "Alir3z4/python-short_url"}, 1357 | {"url": "sloria/webargs"} 1358 | ] 1359 | }, 1360 | { 1361 | "title" : "Video", 1362 | "description": "Libraries for manipulating video and GIFs.", 1363 | "items": [ 1364 | {"url": "http://zulko.github.io/moviepy/", "name": "moviepy", "description": "A module for script-based movie editing with many formats, including animated GIFs."}, 1365 | {"url": "aizvorski/scikit-video"} 1366 | ] 1367 | }, 1368 | { 1369 | "title" : "WSGI Servers", 1370 | "description": "WSGI-compatible web servers.", 1371 | "items": [ 1372 | {"url": "https://pypi.python.org/pypi/bjoern", "name": "bjoern", "description": "Asynchronous, very fast and written in C."}, 1373 | {"url": "http://www.fapws.org/", "name": "fapws3", "description": "Asynchronous (network side only), written in C."}, 1374 | {"url": "https://pypi.python.org/pypi/gunicorn", "name": "gunicorn", "description": "Pre-forked, partly written in C."}, 1375 | {"url": "https://pypi.python.org/pypi/meinheld", "name": "meinheld", "description": "Asynchronous, partly written in C."}, 1376 | {"url": "hivesolutions/netius"}, 1377 | {"url": "https://pypi.python.org/pypi/rocket", "name": "rocket", "description": "Multi-threaded."}, 1378 | {"url": "https://uwsgi-docs.readthedocs.io/en/latest/", "name": "uWSGI", "description": "A project aims at developing a full stack for building hosting services, written in C."}, 1379 | {"url": "https://waitress.readthedocs.io/en/latest/", "name": "waitress", "description": "Multi-threaded, powers Pyramid."}, 1380 | {"url": "http://werkzeug.pocoo.org/", "name": "Werkzeug", "description": "A WSGI utility library for Python that powers Flask and can easily be embedded into your own projects."} 1381 | ] 1382 | }, 1383 | { 1384 | "title" : "Web Content Extracting", 1385 | "description": "Libraries for extracting web contents.", 1386 | "items": [ 1387 | {"url": "vinta/Haul"}, 1388 | {"url": "Alir3z4/html2text"}, 1389 | {"url": "michaelhelmick/lassie"}, 1390 | {"url": "coleifer/micawber"}, 1391 | {"url": "codelucas/newspaper"}, 1392 | {"url": "grangier/python-goose"}, 1393 | {"url": "buriy/python-readability"}, 1394 | {"url": "kennethreitz/requests-html"}, 1395 | {"url": "Alir3z4/python-sanitize"}, 1396 | {"url": "miso-belica/sumy"}, 1397 | {"url": "deanmalmgren/textract"}, 1398 | {"url": "gaojiuli/toapi"} 1399 | ] 1400 | }, 1401 | { 1402 | "title" : "Web Crawling & Web Scraping", 1403 | "description": "Libraries to automate data extraction from websites.", 1404 | "items": [ 1405 | {"url": "chineking/cola"}, 1406 | {"url": "matiasb/demiurge"}, 1407 | {"url": "http://pythonhosted.org/feedparser/", "name": "feedparser", "description": "Universal feed parser."}, 1408 | {"url": "http://grablib.org/", "name": "Grab", "description": "Site scraping framework."}, 1409 | {"url": "hickford/MechanicalSoup"}, 1410 | {"url": "scrapinghub/portia"}, 1411 | {"url": "binux/pyspider"}, 1412 | {"url": "jmcarp/robobrowser"}, 1413 | {"url": "https://scrapy.org/", "name": "Scrapy", "description": "A fast high-level screen scraping and web crawling framework."} 1414 | ] 1415 | }, 1416 | { 1417 | "title" : "Web Frameworks", 1418 | "description": "Full stack web frameworks.", 1419 | "items": [ 1420 | {"url": "https://www.djangoproject.com/", "name": "Django", "description": "The most popular web framework in Python."}, 1421 | {"url": "wsvincent/awesome-django"}, 1422 | {"url": "http://flask.pocoo.org/", "name": "Flask", "description": "A microframework for Python."}, 1423 | {"url": "humiaozuzu/awesome-flask"}, 1424 | {"url": "https://pylonsproject.org/", "name": "Pyramid", "description": "A small, fast, down-to-earth, open source Python web framework."}, 1425 | {"url": "uralbash/awesome-pyramid"}, 1426 | {"url": "channelcat/sanic"}, 1427 | {"url": "http://www.tornadoweb.org/en/latest/", "name": "Tornado", "description": "A Web framework and asynchronous networking library."}, 1428 | {"url": "https://vibora.io/", "name": "Vibora", "description": "Fast, efficient and asynchronous Web framework inspired by Flask."} 1429 | ] 1430 | }, 1431 | { 1432 | "title" : "WebSocket", 1433 | "description": "Libraries for working with WebSocket.", 1434 | "items": [ 1435 | {"url": "crossbario/autobahn-python"}, 1436 | {"url": "crossbario/crossbar"}, 1437 | {"url": "django/channels"}, 1438 | {"url": "stephenmcd/django-socketio"}, 1439 | {"url": "Lawouach/WebSocket-for-Python"} 1440 | ] 1441 | } 1442 | ] 1443 | }, 1444 | { 1445 | "title": "Services", 1446 | "description": "Online tools and APIs to simplify development.", 1447 | "categories": [ 1448 | { 1449 | "title" : "Continuous Integration", 1450 | "description": "See: [awesome-CIandCD](https://github.com/ciandcd/awesome-ciandcd#online-build-system).", 1451 | "items": [ 1452 | {"url": "https://circleci.com/", "name": "CircleCI", "description": "A CI service that can run very fast parallel testing. (GitHub only)"}, 1453 | {"url": "https://travis-ci.org", "name": "Travis CI", "description": "A popular CI service for your open source and [private](https://travis-ci.com) projects. (GitHub only)"}, 1454 | {"url": "https://vexor.io", "name": "Vexor CI", "description": "A continuous integration tool for private apps with pay-per-minute billing model."}, 1455 | {"url": "http://www.wercker.com/", "name": "Wercker", "description": "A Docker-based platform for building and deploying applications and microservices."} 1456 | ] 1457 | }, 1458 | { 1459 | "title" : "Code Quality", 1460 | "items": [ 1461 | {"url": "https://www.codacy.com/", "name": "Codacy", "description": "Automated Code Review to ship better code, faster."}, 1462 | {"url": "https://codecov.io/", "name": "Codecov", "description": "Code coverage dashboard."}, 1463 | {"url": "https://www.codefactor.io/", "name": "CodeFactor", "description": "Automated Code Review for Git."}, 1464 | {"url": "https://landscape.io/", "name": "Landscape", "description": "Hosted continuous Python code metrics."} 1465 | ] 1466 | } 1467 | ] 1468 | }, 1469 | { 1470 | "title": "Resources", 1471 | "description": "Where to discover new Python libraries.", 1472 | "categories": [ 1473 | { 1474 | "title": "Podcasts", 1475 | "items": [ 1476 | {"url": "http://frompythonimportpodcast.com/", "name": "From Python Import Podcast"}, 1477 | {"url": "https://podcastinit.com/", "name": "Podcast.init"}, 1478 | {"url": "https://pythonbytes.fm", "name": "Python Bytes"}, 1479 | {"url": "http://pythontesting.net", "name": "Python Testing"}, 1480 | {"url": "http://radiofreepython.com/", "name": "Radio Free Python"}, 1481 | {"url": "https://talkpython.fm/", "name": "Talk Python To Me"} 1482 | ] 1483 | }, 1484 | { 1485 | "title": "Twitter", 1486 | "items": [ 1487 | {"url": "https://twitter.com/codetengu", "name": "@codetengu"}, 1488 | {"url": "https://twitter.com/getpy", "name": "@getpy"}, 1489 | {"url": "https://twitter.com/importpython", "name": "@importpython"}, 1490 | {"url": "https://twitter.com/planetpython", "name": "@planetpython"}, 1491 | {"url": "https://twitter.com/pycoders", "name": "@pycoders"}, 1492 | {"url": "https://twitter.com/pypi", "name": "@pypi"}, 1493 | {"url": "https://twitter.com/pythontrending", "name": "@pythontrending"}, 1494 | {"url": "https://twitter.com/PythonWeekly", "name": "@PythonWeekly"}, 1495 | {"url": "https://twitter.com/talkpython", "name": "@TalkPython"}, 1496 | {"url": "https://twitter.com/realpython", "name": "@realpython"} 1497 | ] 1498 | }, 1499 | { 1500 | "title": "Websites", 1501 | "items": [ 1502 | {"url": "https://www.reddit.com/r/coolgithubprojects/", "name": "/r/CoolGithubProjects"}, 1503 | {"url": "https://www.reddit.com/r/python", "name": "/r/Python"}, 1504 | {"url": "https://python.libhunt.com/", "name": "Awesome Python @LibHunt"}, 1505 | {"url": "https://djangopackages.org/", "name": "Django Packages"}, 1506 | {"url": "https://www.fullstackpython.com/", "name": "Full Stack Python"}, 1507 | {"url": "http://pypi-ranking.info/alltime", "name": "PyPI Ranking"}, 1508 | {"url": "http://python3wos.appspot.com/", "name": "Python 3 Wall of Superpowers"}, 1509 | {"url": "http://www.oss.io/open-source/", "name": "Python Hackers"}, 1510 | {"url": "https://python.zeef.com/alan.richmond", "name": "Python ZEEF"}, 1511 | {"url": "https://www.ctolib.com/python/", "name": "Python 开发社区"}, 1512 | {"url": "https://realpython.com", "name": "Real Python"}, 1513 | {"url": "https://github.com/trending?l=python", "name": "Trending Python repositories on GitHub today"} 1514 | ] 1515 | }, 1516 | { 1517 | "title": "Weekly", 1518 | "items": [ 1519 | {"url": "https://weekly.codetengu.com/", "name": "CodeTengu Weekly 碼天狗週刊"}, 1520 | {"url": "http://importpython.com/newsletter/", "name": "Import Python Newsletter"}, 1521 | {"url": "http://pycoders.com/", "name": "Pycoder's Weekly"}, 1522 | {"url": "http://www.pythonweekly.com/", "name": "Python Weekly"}, 1523 | {"url": "https://realpython.com/python-tricks/", "name": "Python Tricks"} 1524 | ] 1525 | } 1526 | ] 1527 | }, 1528 | { 1529 | "title": "Other Awesome Lists", 1530 | "description": "List of lists.", 1531 | "categories": [ 1532 | { 1533 | "title": "Monty", 1534 | "items": [ 1535 | {"url": "sindresorhus/awesome"}, 1536 | {"url": "lk-geimfari/awesomo"}, 1537 | {"url": "jnv/lists"} 1538 | ] 1539 | }, 1540 | { 1541 | "title": "Python", 1542 | "items": [ 1543 | {"url": "kirang89/pycrumbs"}, 1544 | {"url": "checkcheckzz/python-github-projects"}, 1545 | {"url": "rasbt/python_reference"}, 1546 | {"url": "svaksha/pythonidae"}, 1547 | {"url": "https://www.cybrhome.com/topic/python-podcasts"}, 1548 | {"url": "metakermit/awesome-python-for-social-good"} 1549 | ] 1550 | } 1551 | ] 1552 | } 1553 | ] 1554 | } 1555 | --------------------------------------------------------------------------------