- 新增图像生成接口,支持试用、积分和自定义API Key模式 - 实现生成图片结果异步上传至MinIO存储,带重试机制 - 优化积分预扣除和异常退还逻辑,保障用户积分准确 - 添加获取生成历史记录接口,支持时间范围和分页 - 提供本地字典配置接口,支持模型、比例、提示模板和尺寸 - 实现图片批量上传接口,支持S3兼容对象存储 feat(admin): 增加管理员角色管理与权限分配接口 - 实现角色列表查询、角色创建、更新及删除功能 - 增加权限列表查询接口 - 实现用户角色分配接口,便于统一管理用户权限 - 增加系统字典增删查改接口,支持分类过滤和排序 - 权限控制全面覆盖管理接口,保证安全访问 feat(auth): 完善用户登录注册及权限相关接口与页面 - 实现手机号验证码发送及校验功能,保障注册安全 - 支持手机号注册、登录及退出接口,集成日志记录 - 增加修改密码功能,验证原密码后更新 - 提供动态导航菜单接口,基于权限展示不同菜单 - 实现管理界面路由及日志、角色、字典管理页面访问权限控制 - 添加系统日志查询接口,支持关键词和等级筛选 feat(app): 初始化Flask应用并配置蓝图与数据库 - 创建应用程序工厂,加载配置,初始化数据库和Redis客户端 - 注册认证、API及管理员蓝图,整合路由 - 根路由渲染主页模板 - 应用上下文中自动创建数据库表,保证运行环境准备完毕 feat(database): 提供数据库创建与迁移支持脚本 - 新增数据库创建脚本,支持自动检测是否已存在 - 添加数据库表初始化脚本,支持创建和删除所有表 - 实现RBAC权限初始化,包含基础权限和角色创建 - 新增字段手动修复脚本,添加用户API Key和积分字段 - 强制迁移脚本支持清理连接和修复表结构,初始化默认数据及角色分配 feat(config): 新增系统配置参数 - 配置数据库、Redis、Session和MinIO相关参数 - 添加AI接口地址及试用Key配置 - 集成阿里云短信服务配置及开发模式相关参数 feat(extensions): 初始化数据库、Redis和MinIO客户端 - 创建全局SQLAlchemy数据库实例和Redis客户端 - 配置基于boto3的MinIO兼容S3客户端 chore(logs): 添加示例系统日志文件 - 记录用户请求、验证码发送成功与失败的日志信息
150 lines
5.2 KiB
Plaintext
150 lines
5.2 KiB
Plaintext
Metadata-Version: 2.4
|
|
Name: multidict
|
|
Version: 6.7.0
|
|
Summary: multidict implementation
|
|
Home-page: https://github.com/aio-libs/multidict
|
|
Author: Andrew Svetlov
|
|
Author-email: andrew.svetlov@gmail.com
|
|
License: Apache License 2.0
|
|
Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org
|
|
Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org
|
|
Project-URL: CI: GitHub, https://github.com/aio-libs/multidict/actions
|
|
Project-URL: Code of Conduct, https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md
|
|
Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/multidict
|
|
Project-URL: Docs: Changelog, https://multidict.aio-libs.org/en/latest/changes/
|
|
Project-URL: Docs: RTD, https://multidict.aio-libs.org
|
|
Project-URL: GitHub: issues, https://github.com/aio-libs/multidict/issues
|
|
Project-URL: GitHub: repo, https://github.com/aio-libs/multidict
|
|
Classifier: Development Status :: 5 - Production/Stable
|
|
Classifier: Intended Audience :: Developers
|
|
Classifier: Programming Language :: Python
|
|
Classifier: Programming Language :: Python :: 3
|
|
Classifier: Programming Language :: Python :: 3.9
|
|
Classifier: Programming Language :: Python :: 3.10
|
|
Classifier: Programming Language :: Python :: 3.11
|
|
Classifier: Programming Language :: Python :: 3.12
|
|
Classifier: Programming Language :: Python :: 3.13
|
|
Classifier: Programming Language :: Python :: 3.14
|
|
Requires-Python: >=3.9
|
|
Description-Content-Type: text/x-rst
|
|
License-File: LICENSE
|
|
Requires-Dist: typing-extensions>=4.1.0; python_version < "3.11"
|
|
Dynamic: license-file
|
|
|
|
=========
|
|
multidict
|
|
=========
|
|
|
|
.. image:: https://github.com/aio-libs/multidict/actions/workflows/ci-cd.yml/badge.svg
|
|
:target: https://github.com/aio-libs/multidict/actions
|
|
:alt: GitHub status for master branch
|
|
|
|
.. image:: https://codecov.io/gh/aio-libs/multidict/branch/master/graph/badge.svg?flag=pytest
|
|
:target: https://codecov.io/gh/aio-libs/multidict?flags[]=pytest
|
|
:alt: Coverage metrics
|
|
|
|
.. image:: https://img.shields.io/pypi/v/multidict.svg
|
|
:target: https://pypi.org/project/multidict
|
|
:alt: PyPI
|
|
|
|
.. image:: https://readthedocs.org/projects/multidict/badge/?version=latest
|
|
:target: https://multidict.aio-libs.org
|
|
:alt: Read The Docs build status badge
|
|
|
|
.. image:: https://img.shields.io/endpoint?url=https://codspeed.io/badge.json
|
|
:target: https://codspeed.io/aio-libs/multidict
|
|
:alt: CodSpeed
|
|
|
|
.. image:: https://img.shields.io/pypi/pyversions/multidict.svg
|
|
:target: https://pypi.org/project/multidict
|
|
:alt: Python versions
|
|
|
|
.. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
|
|
:target: https://matrix.to/#/%23aio-libs:matrix.org
|
|
:alt: Matrix Room — #aio-libs:matrix.org
|
|
|
|
.. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
|
|
:target: https://matrix.to/#/%23aio-libs-space:matrix.org
|
|
:alt: Matrix Space — #aio-libs-space:matrix.org
|
|
|
|
Multidict is dict-like collection of *key-value pairs* where key
|
|
might occur more than once in the container.
|
|
|
|
Introduction
|
|
------------
|
|
|
|
*HTTP Headers* and *URL query string* require specific data structure:
|
|
*multidict*. It behaves mostly like a regular ``dict`` but it may have
|
|
several *values* for the same *key* and *preserves insertion ordering*.
|
|
|
|
The *key* is ``str`` (or ``istr`` for case-insensitive dictionaries).
|
|
|
|
``multidict`` has four multidict classes:
|
|
``MultiDict``, ``MultiDictProxy``, ``CIMultiDict``
|
|
and ``CIMultiDictProxy``.
|
|
|
|
Immutable proxies (``MultiDictProxy`` and
|
|
``CIMultiDictProxy``) provide a dynamic view for the
|
|
proxied multidict, the view reflects underlying collection changes. They
|
|
implement the ``collections.abc.Mapping`` interface.
|
|
|
|
Regular mutable (``MultiDict`` and ``CIMultiDict``) classes
|
|
implement ``collections.abc.MutableMapping`` and allows them to change
|
|
their own content.
|
|
|
|
|
|
*Case insensitive* (``CIMultiDict`` and
|
|
``CIMultiDictProxy``) assume the *keys* are case
|
|
insensitive, e.g.::
|
|
|
|
>>> dct = CIMultiDict(key='val')
|
|
>>> 'Key' in dct
|
|
True
|
|
>>> dct['Key']
|
|
'val'
|
|
|
|
*Keys* should be ``str`` or ``istr`` instances.
|
|
|
|
The library has optional C Extensions for speed.
|
|
|
|
|
|
License
|
|
-------
|
|
|
|
Apache 2
|
|
|
|
Library Installation
|
|
--------------------
|
|
|
|
.. code-block:: bash
|
|
|
|
$ pip install multidict
|
|
|
|
The library is Python 3 only!
|
|
|
|
PyPI contains binary wheels for Linux, Windows and MacOS. If you want to install
|
|
``multidict`` on another operating system (or *Alpine Linux* inside a Docker) the
|
|
tarball will be used to compile the library from source. It requires a C compiler and
|
|
Python headers to be installed.
|
|
|
|
To skip the compilation, please use the `MULTIDICT_NO_EXTENSIONS` environment variable,
|
|
e.g.:
|
|
|
|
.. code-block:: bash
|
|
|
|
$ MULTIDICT_NO_EXTENSIONS=1 pip install multidict
|
|
|
|
Please note, the pure Python (uncompiled) version is about 20-50 times slower depending on
|
|
the usage scenario!!!
|
|
|
|
For extension development, set the ``MULTIDICT_DEBUG_BUILD`` environment variable to compile
|
|
the extensions in debug mode:
|
|
|
|
.. code-block:: console
|
|
|
|
$ MULTIDICT_DEBUG_BUILD=1 pip install multidict
|
|
|
|
Changelog
|
|
---------
|
|
See `RTD page <http://multidict.aio-libs.org/en/latest/changes>`_.
|