Awesome Python Chinese Edition

repository·master·Indexed 12 days ago

https://github.com/jobbole/awesome-python-cn

A curated, Chinese-language collection of high-quality Python libraries and resources. Based on the original awesome-python project, it provides a categorized directory of tools for web development, data science, automation, NLP, and more, including specific tools for Chinese language processing like jieba and SnowNLP.

Tokens
13.6K
Snippets
0
Records
85
Agent score
49%

What's inside Awesome Python Chinese Edition

  1. Overview of Awesome Python Chinese Edition

    master
    The awesome-python-cn repository is a Chinese translation and curated list of high-quality Python resources, based on the original awesome-python project. It provides a categorized directory of tools and libraries covering various domains such as Web frameworks, web crawling, data visualization, machine learning, natural language processing, and more. This version is maintained by the "开源前哨" (Open Source Outpost) and "Python开发者" (Python Developer) WeChat official account teams.
  2. Scientific Computing and Data Analysis Libraries

    master

    A collection of Python libraries specialized in scientific computing, data analysis, and domain-specific research (astronomy, biology, chemistry, etc.).

    Key libraries include:

    • Core Science: NumPy (foundation), SciPy (mathematics/engineering), SymPy (symbolic math), Pandas (data structures).
    • Domain Specific: astropy (astronomy), Biopython (biology), RDKit (cheminformatics), ObsPy (seismology), QuTiP (quantum).
    • Specialized Analysis: statsmodels (econometrics), PyMC (Markov Chain Monte Carlo), zipline (algorithmic trading), NetworkX (complex networks).
  3. Distributed Computing Frameworks

    master

    Libraries for parallel and distributed data processing.

    • Big Data/Hadoop/Spark: PySpark (Spark Python API), dumbo (Hadoop wrapper), mrjob (MapReduce on Hadoop/AWS), dpark (Spark clone).
    • Parallel/Stream Processing: Dask (parallel computing), Ray (unified ML/distributed system), faust (stream processing inspired by Kafka Streams), streamparse (Apache Storm integration).
    • Workflow/Pipeline: luigi (complex batch processing pipelines).
  4. Scrape websites and extract web content

    master

    Tools for web crawling and data extraction:

    • Crawling Frameworks:
      • Scrapy: A fast, high-level web crawling and scraping framework.
      • ScrapydWeb: A web UI for managing Scrapy clusters (logs, scheduling, notifications).
      • cola: A distributed crawler framework.
      • Grab: A website crawling framework.
      • pyspider: A powerful crawler system.
      • MechanicalSoup: Used for interacting with websites automatically.
      • RoboBrowser: A Pythonic library for browsing websites.
    • Content Extraction:
      • newspaper: Used for news extraction, article extraction, and curation.
      • goose3: HTML content/article extractor (Python 3).
      • python-goose: HTML content/article extractor (Python 2).
      • python-readability: High-speed Python port of arc90's readability tool.
      • sumy: Automatically summarizes text files and HTML pages.
      • textract: Extracts text from various formats (Word, PowerPoint, PDF, etc.).
      • html2text: Converts HTML to Markdown.
      • micawber: Small library to extract rich content from URLs.
      • lassie: Human-friendly web content retrieval library.
      • Haul: An extensible image crawling tool.
      • opengraph: Parses the Open Graph Protocol.
      • sanitize: Cleans messy data.
  5. Work with dates and times

    master

    Libraries for advanced date and time manipulation:

    • arrow: A better Python date/time manipulation library.
    • pendulum: A library with more explicit and predictable behavior than arrow.
    • dateutil: An extension of the Python datetime module.
    • pytz: Brings the world timezone database into Python, supporting modern and historical timezones.
    • maya: Humanized time handling library.
    • delorean: Solves tricky date handling issues in Python.
    • Chronyk: Library for parsing handwritten-style dates and times in Python 3.
    • PyTime: Simple module for date/time manipulation via strings.
    • when.py: User-friendly functions for common date/time operations.
    • moment: Date/time library inspired by Moment.js.
  6. Manage Python packages and dependencies

    master

    Tools for handling Python packages, dependencies, and repositories:

    • Package Management:
      • pip: The standard Python package and dependency management tool.
      • pip-tools: Tools to ensure Python package dependency updates are consistent.
      • pipenv: Next-generation package management tool recommended by the Python official team.
      • poetry: A package management tool that can completely replace setup.py.
      • conda: Cross-platform Python binary package management tool.
      • Curdling: Command-line tool for managing Python packages.
      • wheel: The new standard for Python distribution (intended to replace eggs).
    • Package Repositories (Local PyPI services/proxies):
      • warehouse: The next generation of PyPI.
      • bandersnatch: PyPA's PyPI mirroring tool.
      • devpi: PyPI service and tool for packaging, testing, and distribution.
      • localshop: Local PyPI service for custom packages with automatic PyPI mirroring.
  7. Explore ORM (Object-Relational Mapping) libraries

    master

    Libraries for mapping data to objects:

    • Relational ORMs: SQLAlchemy (comprehensive tool), Django Models (part of Django), Peewee (small/expressive), PonyORM (generator-based SQL), orator (ActiveRecord implementation), pydal (database abstraction layer).
    • NoSQL ORMs: MongoEngine (MongoDB), PynamoDB (Amazon DynamoDB), flywheel (Amazon DynamoDB), django-mongodb-engine (Django MongoDB backend).
    • Specialized: redisco (Redis models), hot-redis (Redis data types), butterdb (Google Drive spreadsheets).
  8. Select a Python testing framework or tool

    master

    Python testing tools are categorized by their specific use case:

    Testing Frameworks:

    • unittest: The standard Python library unit testing framework.
    • pytest: A mature, full-featured testing tool.
    • nose / nose2: Extensions or successors to unittest.
    • hypothesis: A testing library based on advanced Quickcheck-style properties.
    • Robot Framework: A general-purpose automation testing framework.
    • tox: Tool for automating testing and publishing across multiple Python versions.
    • BDD Frameworks: contexts, mamba, and pyvows.

    GUI and Web Testing:

    • Selenium: Python bindings for Selenium WebDriver.
    • PyAutoGUI: Cross-platform GUI automated testing module.
    • locust: Scalable user load testing tool written in Python.
    • splinter: Open-source web application testing tool.
    • Schemathesis: Property-based testing for Web applications using OpenAPI/Swagger.

    Mocking and Data Generation:

    • mock: The standard library tool for creating mocks.
    • responses / httpretty / httmock: Tools for mocking HTTP requests.
    • VCR.py: Records and replays HTTP interactions.
    • freezegun: Mocks the date/time module to generate different time scenarios.
    • factoryboy / mixer / modelmommy: Libraries for creating test fixtures and object factories.
    • faker / mimesis: Libraries for generating fake/pseudo data.

    Code Coverage:

    • coverage: Measures code coverage.
    • Codecov: A service providing free code coverage testing for open-source projects.
  9. Handle forms and data validation

    master

    Libraries for creating forms and validating data structures:

    • Form Generation:
      • WTForms: A flexible library for form validation and presentation.
      • WTForms-JSON: An extension for WTForms to handle JSON data.
      • Deform: An HTML form generation library.
      • django-crispy-forms: Allows creating beautiful forms in Django using a DRY approach.
      • django-bootstrap3 / django-bootstrap4: Integrates Bootstrap into Django.
      • django-remote-forms: Platform-independent Django form serialization tool.
    • Data Validation:
      • Cerberus: A mapping validator that supports rules and normalization.
      • jsonschema: Python implementation of JSON Schema for validating JSON data.
      • voluptuous: Primarily used for validating JSON, YAML, and other data.
      • colander: System for validating and deserializing data from XML, JSON, or HTML forms.
      • schema: Validates Python data structures.
      • Schematics: Data structure validation.
      • valideer: Lightweight, extensible data validation and adaptation library.
      • kmatch: A language for matching/validating/filtering Python dictionaries.
  10. Select a Python game development framework

    master

    The following frameworks are available for 2D and 3D game development in Python:

    2D and General Graphics:

    • Cocos2d: A framework for 2D games and interactive applications (based on pyglet).
    • Pygame: A set of modules for writing games.
    • Arcade: A modern framework for games with engaging graphics and sound.
    • PySDL2: A wrapper for the SDL2 library based on ctypes.

    3D and Advanced Graphics:

    • Panda3D: A 3D game engine developed by Disney, written in C++ and fully wrapped for Python.
    • PyOgre: Python bindings for the Ogre 3D rendering engine.
    • PyOpenGL: Python bindings and APIs for OpenGL.
    • Harfang3D: A framework supporting 3D, VR, and game development.
  11. Parse and manipulate HTML and XML

    master

    Libraries for processing markup languages:

    • General Parsing & Manipulation:
      • BeautifulSoup: Iterates, searches, and modifies HTML/XML in a Pythonic way.
      • lxml: A very fast, feature-complete library for HTML and XML.
      • html5lib: A standard-compliant HTML parser and serializer.
      • pyquery: An HTML parser with a jQuery-like syntax.
      • requests-html: A Pythonic HTML parsing library.
      • untangle: Converts XML documents into Python objects for easy access.
      • xmltodict: Handles XML as if it were JSON.
      • xmldataset: Simple XML parsing.
    • Security & Cleaning:
      • bleach: A whitelist-based HTML cleaner and text link library.
      • MarkupSafe: Implements XML/HTML/XHTML mark-up safe strings.
    • CSS & PDF Generation:
      • cssutils: A Python library for CSS.
      • xhtml2pdf: Converts HTML/CSS to PDF.
      • WeasyPrint: A visual rendering engine for HTML/CSS that exports to PDF.
    • Other:
      • pyquery: jQuery-like syntax for HTML parsing.