金字塔包的Web应用程序管理器
ines的Python项目详细描述
INES
一个由棱锥体构成的可扩展包(参见http://www.pylonsproject.org/) 关联多个应用程序。
示例
from ines.api import BaseAPISession # Register APP one internal API class OneSession(BaseAPISession): __app_name__ = 'app_one' # This is required when you have multiple app in one package def some_method(self): return u'Method of app ONE called' # Register two APP internal API class TwoSession(BaseAPISession): __app_name__ = 'app_two' def some_method(self): return u'Method of app TWO called' from ines.config import APIConfigurator # Start APPS config config_one = APIConfigurator( application_name='app_one', settings={'api.extension.session_path': OneSession}) config_two = APIConfigurator( application_name='app_two', settings={'api.extension.session_path': TwoSession}) from ines.view import api_config # Add route / view for app one config_one.add_routes(('one_app_home', '')) @api_config(route_name='one_app_home') def one_app_home(context, request): # Here we call the two APP method return { 'two_app': request.api.applications.app_two.some_method(), 'one_app': request.api.applications.app_one.some_method(), 'one_app_direct': request.api.some_method()} # Add route / view for app two config_two.add_routes(('one_app_home', '')) @api_config(route_name='one_app_home') def one_app_home(context, request): # Here we call the two APP method return { 'one_app': request.api.applications.app_one.some_method(), 'two_app': request.api.applications.app_two.some_method(), 'two_app_direct': request.api.some_method()} # Create pyramid wsgi middleware and start server from wsgiref.simple_server import make_server from paste.urlmap import URLMap from ines.wsgi import not_found_api_application urlmap = URLMap(not_found_app=not_found_api_application({})) urlmap['/one'] = config_one.make_wsgi_app() urlmap['/two'] = config_two.make_wsgi_app() server = make_server('0.0.0.0', 6543, urlmap) server.serve_forever()
0.1(未发布)
功能
- 添加单元测试
- 添加文档
- 添加INES翻译
0.1(未发布)
功能
- 添加单元测试
- 添加文档
- 添加INES翻译
0.1a2(2015-06-20)
功能
- utils.make_unique_hash现在接收一个length属性
- 已将位于request.cache的请求缓存更改为request.session_cache
- 已将位于request.fcache的文件系统缓存更改为request.cache
- 新函数utils.remove_file用于删除系统文件,忽略一些错误(带有重试循环)
- 新函数utils.move_file用于移动文件而忽略某些系统错误
- 新函数convert.make_sha256_no_cache忽略convert.make_sha256缓存系统
- 新函数utils.get_file_binary用于获取文件二进制文件,忽略某些系统错误
- 新函数utils.put_binary_on_file用于写入/附加忽略某些系统错误的文件
- 新函数utils.put_binary_on_file用于写入/附加忽略某些系统错误的文件
- 新函数system.thread_is_running用于检查正在运行的线程,使用system.register_thread注册或使用system.start_system_thread启动
- 新函数convert.convert_timezoneupdate datetime值到所选时区
- 新函数^ {Tt18}$,如果存在,将值转换为字符串,否则返回^ {Tt19}$$/LI>
- 新函数utils.path_unique_code使用SHA256创建文件路径唯一代码
- 新函数utils.file_unique_code使用sha256创建文件唯一代码
- 新函数utils.string_unique_code使用sha256创建字符串唯一代码
- 新函数mimetype.find_mimetype使用文件名和/或文件二进制查找mimemtype
- 新的sql filter函数api.database.sql.date_in_period_filter用于创建一个sqlalchemy过滤器以在一段时间内查找项
- 新的缓存类型cache.SaveMeMemcached使用memcached系统
- 新锁类型cache.LockMeMemcached使用memcached系统
- 使用repoze.lru.LRUCache 提高convert.make_sha256速度
- 使用repoze.lru.LRUCache 提高cache.CacheMe.get_file_path速度
- 使用repoze.lru.LRUCache 提高locks.LockMe.get_file_path速度
- 使用repoze.lru.LRUCache 提高convert.camelcase速度
- 使用repoze.lru.LRUCache 提高convert.uncamelcase速度
- 添加到authentication.AuthenticatedSession、is_user和is_apikey 的新属性
- 向ines.api.core添加了ORM查询
- 新模块api.policy.BaseTokenPolicySession。使用令牌进行身份验证的助手
- 新模块api.mailer。SMTP邮件程序的帮助程序。
- 新方法api.route_url。创建应用程序路由url,如request.route url
错误修复
- 处理IOError.errno和OSError.errno不要忽略它们
向后不兼容
- ines现在需要sqlalchemy>;=1.0.0
- api_cache_decorator现在接收参数expire_cache以删除保存的信息,而不是expire
- locks.LockTimeout移动到exceptions.LockTimeout
- locks.remove_file_quietly移动到utils.remove_file_quietly
- cache.make_dir移动到utils.make_dir
- locks.LockMe现在接收参数path,而不是lock_path
- locks.LockMe.clean_junk_locks不接收任何参数。改用locks.LockMe.clean_junk_locks_as_daemon。
- api.database.BaseSQLSessionManager移动到api.database.sql.BaseSQLSessionManager
- api.database.BaseSQLSession移动到api.database.sql.BaseSQLSession
- api.database.sql.BaseDatabaseSessionManager移动到api.database.BaseDatabaseSessionManager
- api.database.sql.BaseDatabaseSession移动到api.database.BaseDatabaseSession
- ines不再依赖于repoze.tm2。如果使用ines.middleware.repozerm.RepozeTMMiddleware或ines.api.database.sql.BaseSQLSessionManager或ines.api.core.BaseCoreSessionManager或ines.api.database.sql.BaseSQLSession或ines.api.core.BaseCoreSession,则需要在设置要求中定义repoze.tm2。
- ines不再依赖于transaction。如果使用ines.api.database.sql.BaseDatabaseSessionManager或ines.api.core.BaseCoreSessionManager或ines.api.database.sql.BaseSQLSession或ines.api.core.BaseCoreSession,则需要在设置要求中定义transaction。
- ines不再依赖于zope.sqlalchemy。如果要继续将其用作sqlalchemy会话扩展,则需要在配置设置(如sql.session_extension=zope.sqlalchemy:zopetransactionextension)上定义它,并在设置要求中定义zope.sqlalchemy。
- ines.api.*.settings现在读取全局设置以ines.api.*开头的s键。.\uuu api\u name\uu
依赖性
- ines现在依赖于repoze.lru
- ines现在依赖于venusian
0.1a1(2015-05-06)
- 初次发布。