unknown 1 year ago
parent 351647acb4
commit b6e9af09e8

8
.idea/.gitignore vendored

@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,540 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DBNavigator.Project.DDLFileAttachmentManager">
<mappings />
<preferences />
</component>
<component name="DBNavigator.Project.DataEditorManager">
<record-view-column-sorting-type value="BY_INDEX" />
<value-preview-text-wrapping value="true" />
<value-preview-pinned value="false" />
</component>
<component name="DBNavigator.Project.DatabaseBrowserManager">
<autoscroll-to-editor value="false" />
<autoscroll-from-editor value="true" />
<show-object-properties value="true" />
<loaded-nodes />
</component>
<component name="DBNavigator.Project.DatabaseConsoleManager">
<connection id="5e1db67e-d356-4eb2-9440-a98108c28047">
<console name="Connection" type="STANDARD" schema="" session="Main" />
</connection>
</component>
<component name="DBNavigator.Project.DatabaseEditorStateManager">
<last-used-providers />
</component>
<component name="DBNavigator.Project.DatabaseFileManager">
<open-files />
</component>
<component name="DBNavigator.Project.DatabaseSessionManager">
<connection id="5e1db67e-d356-4eb2-9440-a98108c28047" />
</component>
<component name="DBNavigator.Project.ExecutionManager">
<retain-sticky-names value="false" />
</component>
<component name="DBNavigator.Project.FileConnectionMappingManager">
<mapping file-url="file://$PROJECT_DIR$/data.sql" connection-id="virtual-mysql-connection" session-id="MAIN" current-schema="" />
</component>
<component name="DBNavigator.Project.ObjectQuickFilterManager">
<last-used-operator value="EQUAL" />
<filters />
</component>
<component name="DBNavigator.Project.ScriptExecutionManager" clear-outputs="true">
<recently-used-interfaces />
</component>
<component name="DBNavigator.Project.Settings">
<connections>
<connection id="5e1db67e-d356-4eb2-9440-a98108c28047" active="true" signed="true">
<database>
<name value="Connection" />
<description value="" />
<database-type value="MYSQL" />
<config-type value="BASIC" />
<database-version value="8.0" />
<driver-source value="BUNDLED" />
<driver-library value="" />
<driver value="" />
<url-type value="DATABASE" />
<host value="localhost" />
<port value="3306" />
<database value="mysql" />
<tns-folder value="" />
<tns-profile value="" />
<type value="USER_PASSWORD" />
<user value="root" />
<deprecated-pwd value="MTAwNDQwMDZMeGx4" />
</database>
<properties>
<auto-commit value="false" />
</properties>
<ssh-settings>
<active value="false" />
<proxy-host value="" />
<proxy-port value="22" />
<proxy-user value="" />
<deprecated-proxy-pwd value="" />
<auth-type value="PASSWORD" />
<key-file value="" />
<key-passphrase value="" />
</ssh-settings>
<ssl-settings>
<active value="false" />
<certificate-authority-file value="" />
<client-certificate-file value="" />
<client-key-file value="" />
</ssl-settings>
<details>
<charset value="UTF-8" />
<session-management value="true" />
<ddl-file-binding value="true" />
<database-logging value="true" />
<connect-automatically value="true" />
<restore-workspace value="true" />
<restore-workspace-deep value="false" />
<environment-type value="default" />
<connectivity-timeout value="30" />
<idle-time-to-disconnect value="30" />
<idle-time-to-disconnect-pool value="5" />
<credential-expiry-time value="10" />
<max-connection-pool-size value="7" />
<alternative-statement-delimiter value="" />
</details>
<debugger>
<compile-dependencies value="true" />
<tcp-driver-tunneling value="false" />
<tcp-host-address value="" />
<tcp-port-from value="4000" />
<tcp-port-to value="4999" />
<debugger-type value="JDBC" />
</debugger>
<object-filters hide-empty-schemas="false" hide-pseudo-columns="false" hide-audit-columns="false">
<object-filters />
<object-type-filter use-master-settings="true">
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
</object-filters>
</connection>
</connections>
<browser-settings>
<general>
<display-mode value="TABBED" />
<navigation-history-size value="100" />
<show-object-details value="false" />
<enable-sticky-paths value="true" />
</general>
<filters>
<object-type-filter>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="true" />
<object-type name="ROLE" enabled="true" />
<object-type name="PRIVILEGE" enabled="true" />
<object-type name="CHARSET" enabled="true" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED_VIEW" enabled="true" />
<object-type name="NESTED_TABLE" enabled="true" />
<object-type name="COLUMN" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET_TRIGGER" enabled="true" />
<object-type name="DATABASE_TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="true" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="TYPE_ATTRIBUTE" enabled="true" />
<object-type name="ARGUMENT" enabled="true" />
<object-type name="DIMENSION" enabled="true" />
<object-type name="CLUSTER" enabled="true" />
<object-type name="DBLINK" enabled="true" />
</object-type-filter>
</filters>
<sorting>
<object-type name="COLUMN" sorting-type="NAME" />
<object-type name="FUNCTION" sorting-type="NAME" />
<object-type name="PROCEDURE" sorting-type="NAME" />
<object-type name="ARGUMENT" sorting-type="POSITION" />
<object-type name="TYPE ATTRIBUTE" sorting-type="POSITION" />
</sorting>
<default-editors>
<object-type name="VIEW" editor-type="SELECTION" />
<object-type name="PACKAGE" editor-type="SELECTION" />
<object-type name="TYPE" editor-type="SELECTION" />
</default-editors>
</browser-settings>
<navigation-settings>
<lookup-filters>
<lookup-objects>
<object-type name="SCHEMA" enabled="true" />
<object-type name="USER" enabled="false" />
<object-type name="ROLE" enabled="false" />
<object-type name="PRIVILEGE" enabled="false" />
<object-type name="CHARSET" enabled="false" />
<object-type name="TABLE" enabled="true" />
<object-type name="VIEW" enabled="true" />
<object-type name="MATERIALIZED VIEW" enabled="true" />
<object-type name="INDEX" enabled="true" />
<object-type name="CONSTRAINT" enabled="true" />
<object-type name="DATASET TRIGGER" enabled="true" />
<object-type name="DATABASE TRIGGER" enabled="true" />
<object-type name="SYNONYM" enabled="false" />
<object-type name="SEQUENCE" enabled="true" />
<object-type name="PROCEDURE" enabled="true" />
<object-type name="FUNCTION" enabled="true" />
<object-type name="PACKAGE" enabled="true" />
<object-type name="TYPE" enabled="true" />
<object-type name="DIMENSION" enabled="false" />
<object-type name="CLUSTER" enabled="false" />
<object-type name="DBLINK" enabled="true" />
</lookup-objects>
<force-database-load value="false" />
<prompt-connection-selection value="true" />
<prompt-schema-selection value="true" />
</lookup-filters>
</navigation-settings>
<dataset-grid-settings>
<general>
<enable-zooming value="true" />
<enable-column-tooltip value="true" />
</general>
<sorting>
<nulls-first value="true" />
<max-sorting-columns value="4" />
</sorting>
<audit-columns>
<column-names value="" />
<visible value="true" />
<editable value="false" />
</audit-columns>
</dataset-grid-settings>
<dataset-editor-settings>
<text-editor-popup>
<active value="false" />
<active-if-empty value="false" />
<data-length-threshold value="100" />
<popup-delay value="1000" />
</text-editor-popup>
<values-actions-popup>
<show-popup-button value="true" />
<element-count-threshold value="1000" />
<data-length-threshold value="250" />
</values-actions-popup>
<general>
<fetch-block-size value="100" />
<fetch-timeout value="30" />
<trim-whitespaces value="true" />
<convert-empty-strings-to-null value="true" />
<select-content-on-cell-edit value="true" />
<large-value-preview-active value="true" />
</general>
<filters>
<prompt-filter-dialog value="true" />
<default-filter-type value="BASIC" />
</filters>
<qualified-text-editor text-length-threshold="300">
<content-types>
<content-type name="Text" enabled="true" />
<content-type name="Properties" enabled="true" />
<content-type name="XML" enabled="true" />
<content-type name="DTD" enabled="true" />
<content-type name="HTML" enabled="true" />
<content-type name="XHTML" enabled="true" />
<content-type name="CSS" enabled="true" />
<content-type name="SQL" enabled="true" />
<content-type name="PL/SQL" enabled="true" />
<content-type name="JavaScript" enabled="true" />
<content-type name="JSON" enabled="true" />
<content-type name="JSON5" enabled="true" />
<content-type name="YAML" enabled="true" />
</content-types>
</qualified-text-editor>
<record-navigation>
<navigation-target value="VIEWER" />
</record-navigation>
</dataset-editor-settings>
<code-editor-settings>
<general>
<show-object-navigation-gutter value="false" />
<show-spec-declaration-navigation-gutter value="true" />
<enable-spellchecking value="true" />
<enable-reference-spellchecking value="false" />
</general>
<confirmations>
<save-changes value="false" />
<revert-changes value="true" />
<exit-on-changes value="ASK" />
</confirmations>
</code-editor-settings>
<code-completion-settings>
<filters>
<basic-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="false" />
<filter-element type="OBJECT" id="view" selected="false" />
<filter-element type="OBJECT" id="materialized view" selected="false" />
<filter-element type="OBJECT" id="index" selected="false" />
<filter-element type="OBJECT" id="constraint" selected="false" />
<filter-element type="OBJECT" id="trigger" selected="false" />
<filter-element type="OBJECT" id="synonym" selected="false" />
<filter-element type="OBJECT" id="sequence" selected="false" />
<filter-element type="OBJECT" id="procedure" selected="false" />
<filter-element type="OBJECT" id="function" selected="false" />
<filter-element type="OBJECT" id="package" selected="false" />
<filter-element type="OBJECT" id="type" selected="false" />
<filter-element type="OBJECT" id="dimension" selected="false" />
<filter-element type="OBJECT" id="cluster" selected="false" />
<filter-element type="OBJECT" id="dblink" selected="false" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</basic-filter>
<extended-filter>
<filter-element type="RESERVED_WORD" id="keyword" selected="true" />
<filter-element type="RESERVED_WORD" id="function" selected="true" />
<filter-element type="RESERVED_WORD" id="parameter" selected="true" />
<filter-element type="RESERVED_WORD" id="datatype" selected="true" />
<filter-element type="RESERVED_WORD" id="exception" selected="true" />
<filter-element type="OBJECT" id="schema" selected="true" />
<filter-element type="OBJECT" id="user" selected="true" />
<filter-element type="OBJECT" id="role" selected="true" />
<filter-element type="OBJECT" id="privilege" selected="true" />
<user-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</user-schema>
<public-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</public-schema>
<any-schema>
<filter-element type="OBJECT" id="table" selected="true" />
<filter-element type="OBJECT" id="view" selected="true" />
<filter-element type="OBJECT" id="materialized view" selected="true" />
<filter-element type="OBJECT" id="index" selected="true" />
<filter-element type="OBJECT" id="constraint" selected="true" />
<filter-element type="OBJECT" id="trigger" selected="true" />
<filter-element type="OBJECT" id="synonym" selected="true" />
<filter-element type="OBJECT" id="sequence" selected="true" />
<filter-element type="OBJECT" id="procedure" selected="true" />
<filter-element type="OBJECT" id="function" selected="true" />
<filter-element type="OBJECT" id="package" selected="true" />
<filter-element type="OBJECT" id="type" selected="true" />
<filter-element type="OBJECT" id="dimension" selected="true" />
<filter-element type="OBJECT" id="cluster" selected="true" />
<filter-element type="OBJECT" id="dblink" selected="true" />
</any-schema>
</extended-filter>
</filters>
<sorting enabled="true">
<sorting-element type="RESERVED_WORD" id="keyword" />
<sorting-element type="RESERVED_WORD" id="datatype" />
<sorting-element type="OBJECT" id="column" />
<sorting-element type="OBJECT" id="table" />
<sorting-element type="OBJECT" id="view" />
<sorting-element type="OBJECT" id="materialized view" />
<sorting-element type="OBJECT" id="index" />
<sorting-element type="OBJECT" id="constraint" />
<sorting-element type="OBJECT" id="trigger" />
<sorting-element type="OBJECT" id="synonym" />
<sorting-element type="OBJECT" id="sequence" />
<sorting-element type="OBJECT" id="procedure" />
<sorting-element type="OBJECT" id="function" />
<sorting-element type="OBJECT" id="package" />
<sorting-element type="OBJECT" id="type" />
<sorting-element type="OBJECT" id="dimension" />
<sorting-element type="OBJECT" id="cluster" />
<sorting-element type="OBJECT" id="dblink" />
<sorting-element type="OBJECT" id="schema" />
<sorting-element type="OBJECT" id="role" />
<sorting-element type="OBJECT" id="user" />
<sorting-element type="RESERVED_WORD" id="function" />
<sorting-element type="RESERVED_WORD" id="parameter" />
</sorting>
<format>
<enforce-code-style-case value="true" />
</format>
</code-completion-settings>
<execution-engine-settings>
<statement-execution>
<fetch-block-size value="100" />
<execution-timeout value="20" />
<debug-execution-timeout value="600" />
<focus-result value="false" />
<prompt-execution value="false" />
</statement-execution>
<script-execution>
<command-line-interfaces />
<execution-timeout value="300" />
</script-execution>
<method-execution>
<execution-timeout value="30" />
<debug-execution-timeout value="600" />
<parameter-history-size value="10" />
</method-execution>
</execution-engine-settings>
<operation-settings>
<transactions>
<uncommitted-changes>
<on-project-close value="ASK" />
<on-disconnect value="ASK" />
<on-autocommit-toggle value="ASK" />
</uncommitted-changes>
<multiple-uncommitted-changes>
<on-commit value="ASK" />
<on-rollback value="ASK" />
</multiple-uncommitted-changes>
</transactions>
<session-browser>
<disconnect-session value="ASK" />
<kill-session value="ASK" />
<reload-on-filter-change value="false" />
</session-browser>
<compiler>
<compile-type value="KEEP" />
<compile-dependencies value="ASK" />
<always-show-controls value="false" />
</compiler>
</operation-settings>
<ddl-file-settings>
<extensions>
<mapping file-type-id="VIEW" extensions="vw" />
<mapping file-type-id="TRIGGER" extensions="trg" />
<mapping file-type-id="PROCEDURE" extensions="prc" />
<mapping file-type-id="FUNCTION" extensions="fnc" />
<mapping file-type-id="PACKAGE" extensions="pkg" />
<mapping file-type-id="PACKAGE_SPEC" extensions="pks" />
<mapping file-type-id="PACKAGE_BODY" extensions="pkb" />
<mapping file-type-id="TYPE" extensions="tpe" />
<mapping file-type-id="TYPE_SPEC" extensions="tps" />
<mapping file-type-id="TYPE_BODY" extensions="tpb" />
</extensions>
<general>
<lookup-ddl-files value="true" />
<create-ddl-files value="false" />
<synchronize-ddl-files value="true" />
<use-qualified-names value="false" />
<make-scripts-rerunnable value="true" />
</general>
</ddl-file-settings>
<general-settings>
<regional-settings>
<date-format value="MEDIUM" />
<number-format value="UNGROUPED" />
<locale value="SYSTEM_DEFAULT" />
<use-custom-formats value="false" />
</regional-settings>
<environment>
<environment-types>
<environment-type id="development" name="Development" description="Development environment" color="-2430209/-12296320" readonly-code="false" readonly-data="false" />
<environment-type id="integration" name="Integration" description="Integration environment" color="-2621494/-12163514" readonly-code="true" readonly-data="false" />
<environment-type id="production" name="Production" description="Productive environment" color="-11574/-10271420" readonly-code="true" readonly-data="true" />
<environment-type id="other" name="Other" description="" color="-1576/-10724543" readonly-code="false" readonly-data="false" />
</environment-types>
<visibility-settings>
<connection-tabs value="true" />
<dialog-headers value="true" />
<object-editor-tabs value="true" />
<script-editor-tabs value="false" />
<execution-result-tabs value="true" />
</visibility-settings>
</environment>
</general-settings>
</component>
<component name="DBNavigator.Project.StatementExecutionManager">
<execution-variables />
<execution-variable-types />
</component>
</project>

@ -0,0 +1,12 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPep8Inspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="E265" />
</list>
</option>
</inspection_tool>
</profile>
</component>

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.12 (qimo20240517)" />
</component>
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12 (qimo20240517)" project-jdk-type="Python SDK" />
<component name="PyPackaging">
<option name="earlyReleasesAsUpgrades" value="true" />
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/test.iml" filepath="$PROJECT_DIR$/.idea/test.iml" />
</modules>
</component>
</project>

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="Flask">
<option name="enabled" value="true" />
</component>
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.12 (qimo20240517)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TemplatesService">
<option name="TEMPLATE_CONFIGURATION" value="Jinja2" />
<option name="TEMPLATE_FOLDERS">
<list>
<option value="$MODULE_DIR$/../../test\templates" />
</list>
</option>
</component>
<component name="TestRunnerService">
<option name="PROJECT_TEST_RUNNER" value="pytest" />
</component>
</module>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

341
app.py

@ -0,0 +1,341 @@
from flask import Flask, render_template, flash, session, redirect, url_for, request
from form import LoginForm, PassForm, TeaInfoForm, EvaInfoForm
from flask_sqlalchemy import SQLAlchemy
from flask_login import UserMixin
app = Flask(__name__)
app.config['SECRET_KEY'] = '123'
#设置密钥
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:10044006Lxlx@localhost:3306/fkkk'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
# 是否追踪数据库修改,
app.config['SQLALCHEMY_ECHO'] = True
# 是否显示底层执行的SQL语句
db = SQLAlchemy(app)
# 数据库实例,关联flask 项目
# 用户表
class USER(db.Model):
__table__name = 'user'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(45))
password = db.Column(db.String(45))
stu_id = db.Column(db.String(45), db.ForeignKey('stu_info.stu_id'))
tea_id = db.Column(db.String(45), db.ForeignKey('tea_info.tea_id'))
status = db.Column(db.String(45))
def __repr__(self):
return 'USER:%s' % self.username
# 创建教师信息表数据库模型
class TeaInfo(db.Model):
__table__name = 'tea_info'
tea_id = db.Column(db.String(45), primary_key=True)
name = db.Column(db.String(45))
tec_title = db.Column(db.String(45))
department = db.Column(db.String(45))
gender = db.Column(db.String(45))
en_year = db.Column(db.String(45))
birthday = db.Column(db.String(45))
email = db.Column(db.String(45))
number = db.Column(db.String(45))
pol_status = db.Column(db.String(45))
edu_background = db.Column(db.String(45))
address = db.Column(db.String(45))
user = db.relationship('USER', backref=db.backref('tea_info'), uselist=False)
def __repr__(self):
return 'TeaInfo:%s' % self.name
# 学生和课程关联信息表
registrations = db.Table('registrations',
db.Column('stu_id', db.String(45), db.ForeignKey('stu_info.stu_id')),
db.Column('course_id', db.String(45), db.ForeignKey('course_info.course_id'))
)
# 教师和课程关联信息表
tea_course = db.Table('tea_course',
db.Column('tea_id', db.String(45), db.ForeignKey('tea_info.tea_id')),
db.Column('course_id', db.String(45), db.ForeignKey('course_info.course_id'))
)
# 学生信息表
class StuInfo(db.Model):
__table__name = 'stu_info'
stu_id = db.Column(db.String(45), primary_key=True)
name = db.Column(db.String(45))
grade = db.Column(db.String(45))
department = db.Column(db.String(45))
gender = db.Column(db.String(45))
en_year = db.Column(db.String(45))
birthday = db.Column(db.String(45))
email = db.Column(db.String(45))
number = db.Column(db.String(45))
pol_status = db.Column(db.String(45))
edu_background = db.Column(db.String(45))
address = db.Column(db.String(45))
user = db.relationship('USER', backref=db.backref('stu_info'), uselist=False)
def __repr__(self):
return 'StuInfo:%s' % self.name
# 课程信息表
class CourseInfo(db.Model):
__table__name = 'course_info'
course_id = db.Column(db.String(45), primary_key=True)
course_name = db.Column(db.String(45))
course_teacher = db.Column(db.String(45))
course_credit = db.Column(db.String(45))
course_time = db.Column(db.String(45))
stu_info = db.relationship('StuInfo',
secondary=registrations,
backref=db.backref('course_info', lazy='dynamic'),
lazy='dynamic'
)
tea_info = db.relation('TeaInfo',
secondary=tea_course,
backref=db.backref('course_info', lazy='dynamic'),
lazy='dynamic'
)
def __repr__(self):
return 'CourseInfo:%s' % self.course_name
# 评教信息表
class EvaInfo(db.Model):
__table__name = 'eva_info'
#id = db.Column(db.Integer(), primary_key=True)
eva_course = db.Column(db.String(45), primary_key=True)
eva_teacher = db.Column(db.String(45))
eva_student = db.Column(db.String(45), primary_key=True)
index_one = db.Column(db.Integer())
index_two = db.Column(db.Integer())
index_three = db.Column(db.Integer())
index_four = db.Column(db.Integer())
opinion = db.Column(db.String(45))
def __repr__(self):
return 'EvaInfo:%s' % self.eva_student
@app.route('/mycourse')
def mycourse():
username = session.get('username')
user = StuInfo.query.filter_by(name=username).first()
course = user.course_info.all()
eva_info = EvaInfo.query.with_entities(EvaInfo.eva_teacher, EvaInfo.eva_student)
return render_template('mycourse.html', stu_course=course, eva_info=eva_info, username=username)
@app.route('/courseinfo')
def courseinfo():
user = USER.query.filter_by(username=session.get('username')).first()
courseid = request.args.get('course_id')
course = CourseInfo.query.filter_by(course_id=courseid).first()
context = {
'userstatus': user.status,
'courseid': course.course_id,
'coursename': course.course_name,
'courseteacher': course.course_teacher,
'coursecredit': course.course_credit,
'coursetime': course.course_time
}
return render_template('courseinfo.html', **context)
@app.route('/info')
def info():
return render_template('info.html')
@app.route('/pass', methods=['GET', 'POST'])
def pas():
form = PassForm()
if form.validate_on_submit():
print('验证通过')
mpass = request.form.get('mpass')
#print(mpass)
newpass = request.form.get('newpass')
#print(newpass)
username = session.get('username')
user = USER.query.filter_by(username=username).first()
if user and user.password == mpass:
user.password = newpass
db.session.commit()
return redirect(url_for('info'))
else:
return '修改失败'
return render_template('pass.html', form=form, username=session.get('username'))
@app.route('/tea_info', methods=['GET', 'POST'])
def tea_info():
form = TeaInfoForm()
user = TeaInfo.query.filter_by(name=session.get('username')).first()
if form.validate_on_submit():
tec_title = request.form.get('tec_title')
department = request.form.get('department')
gender = request.form.get('gender')
en_year = request.form.get('en_year')
birthday = request.form.get('birthday')
email = request.form.get('email')
number = request.form.get('number')
pol_status = request.form.get('pol_status')
edu_background = request.form.get('edu_background')
address = request.form.get('address')
user.address = address
user.edu_background = edu_background
user.pol_status = pol_status
user.number = number
user.email = email
user.birthday = birthday
user.en_year = en_year
user.gender = gender
user.department = department
user.tec_title = tec_title
db.session.commit()
context = {
'tea_id': user.tea_id,
'name': user.name,
'tec_title': user.tec_title,
'department': user.department,
'gender': user.gender,
'en_year': user.en_year,
'birthday': user.birthday,
'email': user.email,
'number': user.number,
'pol_status': user.pol_status,
'edu_background': user.edu_background,
'address': user.address
}
return render_template('tea_info.html', **context, form=form)
@app.route('/stu_info')
def stu_info():
user = StuInfo.query.filter_by(name=session.get('username')).first()
context = {
'stu_id': user.stu_id,
'name': user.name,
'tec_title': user.grade,
'department': user.department,
'grade': user.grade,
'gender': user.gender,
'en_year': user.en_year,
'birthday': user.birthday,
'email': user.email,
'number': user.number,
'pol_status': user.pol_status,
'edu_background': user.edu_background,
'address': user.address
}
return render_template('stu_info.html', **context)
@app.route('/teacourse')
def teacourse():
user = TeaInfo.query.filter_by(name=session.get('username')).first()
session['tea_id'] = user.tea_id
teacher = TeaInfo.query.get(session.get('tea_id'))
# print(student.name)
teacourse = teacher.course_info.all()
return render_template('teacourse.html', teacourse=teacourse)
@app.route('/eva_result')
def eva_result():
courseid = request.args.get('course_id')
coursename = request.args.get('course_name')
courseteacher = request.args.get('course_teacher')
course_info = EvaInfo.query.filter_by(eva_course=coursename, eva_teacher=courseteacher)
count = 0
j = 0
sum1 = []
sum2 = []
sum3 = []
sum4 = []
for i in course_info:
sum1.append(i.index_one)
sum2.append(i.index_two)
sum3.append(i.index_three)
sum4.append(i.index_four)
count += 1
su1 = sum(sum1)
su2 = sum(sum2)
su3 = sum(sum3)
su4 = sum(sum4)
return render_template('eva_result.html', courseid=courseid, coursename=coursename, courseteacher=courseteacher
, course_info=course_info, su1=su1, su2=su2, su3=su3, su4=su4, count=count)
@app.route('/eva_teacher', methods=['GET', 'POST'])
def eva_teacher():
username = session.get("username")
courseid = request.args.get('course_id')
coursename = request.args.get('course_name')
courseteacher = request.args.get('course_teacher')
form = EvaInfoForm()
try:
if form.validate_on_submit():
index_one = request.form.get('index_one')
index_two = request.form.get('index_two')
index_three = request.form.get('index_three')
index_four = request.form.get('index_four')
opinion = request.form.get('opinion')
eva_info = EvaInfo(eva_course=coursename, eva_teacher=courseteacher, eva_student=username,
index_one=index_one, index_two=index_two, index_three=index_three,
index_four=index_four, opinion=opinion)
db.session.add(eva_info)
db.session.commit()
return redirect(url_for('info'))
except:
return "不可重复评教"
return render_template('eva_teacher.html', form=form, courseid=courseid, coursename=coursename, courseteacher=courseteacher, username=username)
@app.route('/stu')
def stu():
return render_template('stu.html', username=session.get('username'))
@app.route('/tea')
def tea():
return render_template('tea.html', username=session.get('username'))
@app.route('/', methods=['GET', 'POST'])
def login():
form = LoginForm()
# username = form.username.data
# password = form.password.data
if form.validate_on_submit():
session['username'] = request.form.get('username', None)
status = request.form.get('status')
#status = request.form.get('status', None)
user = USER.query.filter_by(username=session.get('username')).first()
#if not user:
# flash('该用户不存在')
# flash('密码错误')
if user and request.form.get('password') == user.password:
if user.status == '0':
if status != user.status:
flash('用户类型错误')
else:
return render_template('stu.html', username=session.get('username'))
else:
if status != user.status:
flash('用户类型错误')
else:
return render_template('tea.html', username=session.get('username'))
return render_template('login.html', form=form)
if __name__ == '__main__':
app.run(debug=True)

@ -0,0 +1,243 @@
-- MySQL dump 10.13 Distrib 8.0.12, for Win64 (x86_64)
--
-- Host: localhost Database: data
-- ------------------------------------------------------
-- Server version 8.0.12
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
SET NAMES utf8 ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `course_info`
--
DROP TABLE IF EXISTS `course_info`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `course_info` (
`course_id` varchar(45) NOT NULL,
`course_name` varchar(45) NOT NULL,
`course_teacher` varchar(45) NOT NULL,
`course_credit` varchar(45) NOT NULL,
`course_time` varchar(45) NOT NULL,
`is_eva` varchar(45) NOT NULL,
PRIMARY KEY (`course_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `course_info`
--
LOCK TABLES `course_info` WRITE;
/*!40000 ALTER TABLE `course_info` DISABLE KEYS */;
INSERT INTO `course_info` VALUES ('c01','数据结构','liu','4','42','未评教'),('c02','python','李四','2','30','未评教');
/*!40000 ALTER TABLE `course_info` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `eva_info`
--
DROP TABLE IF EXISTS `eva_info`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `eva_info` (
`eva_course` varchar(45) NOT NULL,
`eva_teacher` varchar(45) NOT NULL,
`eva_student` varchar(45) NOT NULL,
`index_one` int(11) NOT NULL,
`index_two` int(11) NOT NULL,
`index_three` int(11) NOT NULL,
`index_four` int(11) NOT NULL,
`opinion` varchar(45) DEFAULT NULL,
PRIMARY KEY (`eva_course`,`eva_student`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `eva_info`
--
LOCK TABLES `eva_info` WRITE;
/*!40000 ALTER TABLE `eva_info` DISABLE KEYS */;
INSERT INTO `eva_info` VALUES ('python','李四','小妹',15,25,25,20,''),('python','李四','林涛',25,20,25,25,'优秀的老师'),('数据结构','liu','林涛',20,20,25,25,'优秀');
/*!40000 ALTER TABLE `eva_info` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `registrations`
--
DROP TABLE IF EXISTS `registrations`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `registrations` (
`id` int(11) NOT NULL,
`course_id` varchar(45) NOT NULL,
`stu_id` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
KEY `course_id_idx` (`course_id`),
KEY `stu_id_idx` (`stu_id`),
CONSTRAINT `course_id` FOREIGN KEY (`course_id`) REFERENCES `course_info` (`course_id`),
CONSTRAINT `stu_id` FOREIGN KEY (`stu_id`) REFERENCES `stu_info` (`stu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `registrations`
--
LOCK TABLES `registrations` WRITE;
/*!40000 ALTER TABLE `registrations` DISABLE KEYS */;
INSERT INTO `registrations` VALUES (1,'c01','s01'),(2,'c02','s01'),(3,'c01','s02'),(4,'c02','s02');
/*!40000 ALTER TABLE `registrations` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `stu_info`
--
DROP TABLE IF EXISTS `stu_info`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `stu_info` (
`stu_id` varchar(45) NOT NULL,
`name` varchar(45) NOT NULL,
`grade` varchar(45) NOT NULL,
`department` varchar(45) DEFAULT NULL,
`gender` varchar(45) NOT NULL,
`en_year` varchar(45) NOT NULL,
`birthday` varchar(45) NOT NULL,
`email` varchar(45) NOT NULL,
`number` varchar(45) NOT NULL,
`pol_status` varchar(45) NOT NULL,
`edu_background` varchar(45) NOT NULL,
`address` varchar(45) NOT NULL,
PRIMARY KEY (`stu_id`),
CONSTRAINT `stu_info_ibfk_1` FOREIGN KEY (`stu_id`) REFERENCES `user` (`stu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `stu_info`
--
LOCK TABLES `stu_info` WRITE;
/*!40000 ALTER TABLE `stu_info` DISABLE KEYS */;
INSERT INTO `stu_info` VALUES ('s01','林涛','研一','计算机学院','','2018','1996-12-19','201814131052@cqu.edu.cn','18279184056','中共党员','硕士','江西省'),('s02','小妹','大四','通信学院','','2015','1996-03-24','2315465305@qq.com','13546547898','中共党员','准硕士','江西省');
/*!40000 ALTER TABLE `stu_info` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `tea_course`
--
DROP TABLE IF EXISTS `tea_course`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `tea_course` (
`id` int(11) NOT NULL,
`tea_id` varchar(45) NOT NULL,
`course_id` varchar(45) NOT NULL,
PRIMARY KEY (`id`),
KEY `courseid_idx` (`course_id`),
KEY `tea_id_idx` (`tea_id`),
CONSTRAINT `courseid` FOREIGN KEY (`course_id`) REFERENCES `course_info` (`course_id`),
CONSTRAINT `tea_id` FOREIGN KEY (`tea_id`) REFERENCES `tea_info` (`tea_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `tea_course`
--
LOCK TABLES `tea_course` WRITE;
/*!40000 ALTER TABLE `tea_course` DISABLE KEYS */;
INSERT INTO `tea_course` VALUES (1,'t01','c02');
/*!40000 ALTER TABLE `tea_course` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `tea_info`
--
DROP TABLE IF EXISTS `tea_info`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `tea_info` (
`tea_id` varchar(45) NOT NULL,
`name` varchar(45) NOT NULL,
`tec_title` varchar(45) NOT NULL,
`department` varchar(45) DEFAULT NULL,
`gender` varchar(45) NOT NULL,
`en_year` varchar(45) NOT NULL,
`birthday` varchar(45) NOT NULL,
`email` varchar(45) NOT NULL,
`number` varchar(45) NOT NULL,
`pol_status` varchar(45) NOT NULL,
`edu_background` varchar(45) NOT NULL,
`address` varchar(45) NOT NULL,
PRIMARY KEY (`tea_id`),
CONSTRAINT `id` FOREIGN KEY (`tea_id`) REFERENCES `user` (`tea_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `tea_info`
--
LOCK TABLES `tea_info` WRITE;
/*!40000 ALTER TABLE `tea_info` DISABLE KEYS */;
INSERT INTO `tea_info` VALUES ('t01','李四','讲师','计算机学院','','2018','1996-09-10','2315465305@qq.com','17679119796','中共党员','博士','江西省上饶市');
/*!40000 ALTER TABLE `tea_info` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `user`
--
DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
SET character_set_client = utf8mb4 ;
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`username` varchar(45) NOT NULL,
`password` varchar(45) NOT NULL,
`status` varchar(4) NOT NULL,
`stu_id` varchar(45) DEFAULT NULL,
`tea_id` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `stu_id_UNIQUE` (`stu_id`),
UNIQUE KEY `tea_id_UNIQUE` (`tea_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `user`
--
LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES (1,'林涛','123456','0','s01',NULL),(2,'李四','123456','1',NULL,'t01'),(3,'小妹','123456','0','s02',NULL);
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2019-04-22 17:38:23

@ -0,0 +1,77 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title></title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}">
<script src="{{ url_for('static',filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static',filename='js/pintuer.js') }}"></script>
</head>
<body>
<div class="panel admin-panel">
<div class="panel-head"><strong><span class="icon-key"></span> 数据结构课程信息</strong></div>
<div class="body-content">
<form method="post" class="form-x" action="">
<div class="form-group">
<div class="label">
<label for="sitename">课程ID</label>
</div>
<div class="field">
<input type="text" class="input w50" id="courseid" name="courseid" size="50" value="{{ courseid }}"/>
</div>
</div>
<div class="form-group">
<div class="label">
<label for="sitename">课程名:</label>
</div>
<div class="field">
<input type="text" class="input w50" name="name" size="50" value="{{ coursename }}" />
</div>
</div>
<div class="form-group">
<div class="label">
<label for="sitename">授课老师:</label>
</div>
<div class="field">
<input type="text" class="input w50" name="name" size="50" value="{{ courseteacher }}" />
</div>
</div>
<div class="form-group">
<div class="label">
<label for="sitename">学 分:</label>
</div>
<div class="field">
<input type="text" class="input w50" name="name" size="50" value="{{ coursecredit }}" />
</div>
</div>
<div class="form-group">
<div class="label">
<label for="sitename">学 时:</label>
</div>
<div class="field">
<input type="text" class="input w50" name="name" size="50" value="{{ coursetime }}" />
</div>
</div>
<div class="form-group">
<div class="label">
<label></label>
</div>
<div class="field">
{% if userstatus=='0' %}
<a class="button bg-main icon-check-square-o" href="/mycourse" > 返回</a>
{% else %}
<a class="button bg-main icon-check-square-o" href="/teacourse" > 返回</a>
{% endif %}
</div>
</div>
</form>
</div>
</div>
</body></html>

@ -0,0 +1,110 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.css') }}">
<script src="{{ url_for('static', filename='js/jquery.js') }}"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title></title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/admin.css') }}">
<script src="{{ url_for('static', filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static', filename='js/pintuer.js') }}"></script>
</head>
<body>
<div class="panel admin-panel" >
<div class="panel-head" id="add"><strong><span class="icon-pencil-square-o"></span>评测结果表</strong></div>
<div class="body-content">
<form method="post" class="form-x" action="">
<div style="padding-left:20px ;padding-bottom: 20px;">
<label>【基本信息】</label>
</div>
<div class="form-group">
<div class="label">
<label>课程名称:</label>
</div>
<div class="field l10" >
<input type="text" class="input w100" value="{{ coursename }}" name="eva_course" readonly="readonly"/>
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>授课老师:</label>
</div>
<div class="field l10">
<input type="text" class="input w100" value="{{ courseteacher }}" name="eva_teacher" readonly="readonly" />
<div class="tips"></div>
</div>
</div>
<div style="padding-left:20px ;padding-bottom: 20px;">
<label>【各指标平均分】</label>
</div>
<div style="padding-left: 50px;padding-right: 50px;">
<table class="table table-bordered" >
<thead>
<tr>
<th>指标</th>
<th>主要观测点</th>
<th>评分标准</th>
<th>分值</th>
<th>平均得分</th>
</tr>
</thead>
<tbody>
<tr>
<td>任课教师</td>
<td>学术水平与教学水平</td>
<td>课程主讲教师师德好,学术造诣高</td>
<td>25</td>
<td>{{ su1/count }}</td>
</tr>
<tr>
<td>教学内容</td>
<td>教学内容的选择与组织</td>
<td>教学内容重点突出</td>
<td>25</td>
<td>{{ su2/count }}</td>
</tr>
<tr>
<td>教学方式</td>
<td>教学方式与思想</td>
<td>注重理论联系实际</td>
<td>25</td>
<td>{{ su3/count }}</td>
</tr>
<tr>
<td>教学效果</td>
<td>教学效果</td>
<td>学生通过本课程的学习,知识,能力,素质等方面受益显著</td>
<td>25</td>
<td>{{ su4/count }}</td>
</tr>
</tbody>
</table>
</div>
<div style="padding-left:20px ;padding-bottom: 20px;">
<label>【其他建议与意见】</label>
</div>
<div class="field" style="padding-left: 30px;padding-right: 30px;">
{% for i in course_info %}
<textarea class="input" name="opinion" style=" height:90px;">{{ i.opinion }}</textarea>
{% endfor %}
<div class="tips"></div>
</div>
<div class="form-group" style="padding-top: 30px;">
<div class="label">
<label></label>
</div>
<div class="field">
<a class="button bg-main icon-check-square-o" href="/info" > 返回主页</a>
</div>
</div>
</form>
</div>
</div>
</body></html>

@ -0,0 +1,160 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.css') }}">
<script src="{{ url_for('static', filename='js/jquery.js') }}"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title></title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/admin.css') }}">
<script src="{{ url_for('static', filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static', filename='js/pintuer.js') }}"></script>
</head>
<body>
<div class="panel admin-panel" >
<div class="panel-head" id="add"><strong><span class="icon-pencil-square-o"></span>课程评测表</strong></div>
<div class="body-content">
<form method="post" class="form-x" action="">
{{ form.hidden_tag() }}
<div style="padding-left:20px ;padding-bottom: 20px;">
<label>【基本信息】</label>
</div>
<div class="form-group">
<div class="label">
<label>评教学生:</label>
</div>
<div class="field l10" >
<input type="text" class="input w100" value="{{ username }}" name="eva_student" readonly="readonly"/>
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>课程名称:</label>
</div>
<div class="field l10" >
<input type="text" class="input w100" value="{{ coursename }}" name="eva_course" readonly="readonly"/>
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>授课老师:</label>
</div>
<div class="field l10">
<input type="text" class="input w100" value="{{ courseteacher }}" name="eva_teacher" readonly="readonly" />
<div class="tips"></div>
</div>
</div>
<div style="padding-left:20px ;padding-bottom: 20px;">
<label>【评分标准】</label>
</div>
<div style="padding-left: 50px;padding-right: 50px;">
<table class="table table-bordered" >
<thead>
<tr>
<th>指标</th>
<th>主要观测点</th>
<th>评分标准</th>
<th>分值</th>
<th>评分</th>
</tr>
</thead>
<tbody>
<tr>
<td>任课教师</td>
<td>学术水平与教学水平</td>
<td>课程主讲教师师德好,学术造诣高</td>
<td>25</td>
<td> <div class="field">
<select name="index_one" class="input">
<option value="">请选择</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
</select>
<div class="tips"></div>
</div></td>
</tr>
<tr>
<td>教学内容</td>
<td>教学内容的选择与组织</td>
<td>教学内容重点突出</td>
<td>25</td>
<td> <div class="field">
<select name="index_two" class="input">
<option value="">请选择</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
</select>
<div class="tips"></div>
</div></td>
</tr>
<tr>
<td>教学方式</td>
<td>教学方式与思想</td>
<td>注重理论联系实际</td>
<td>25</td>
<td> <div class="field">
<select name="index_three" class="input">
<option value="">请选择</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
</select>
<div class="tips"></div>
</div></td>
</tr>
<tr>
<td>教学效果</td>
<td>教学效果</td>
<td>学生通过本课程的学习,知识,能力,素质等方面受益显著</td>
<td>25</td>
<td> <div class="field">
<select name="index_four" class="input">
<option value="">请选择</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
</select>
<div class="tips"></div>
</div></td>
</tr>
</tbody>
</table>
</div>
<div style="padding-left:20px ;padding-bottom: 20px;">
<label>【其他建议与意见】</label>
</div>
<div class="field" style="padding-left: 30px;padding-right: 30px;">
<textarea class="input" name="opinion" style=" height:90px;"></textarea>
<div class="tips"></div>
</div>
<div class="form-group" style="padding-top: 30px;">
<div class="label">
<label></label>
</div>
<div class="field">
<button class="button bg-main icon-check-square-o" type="submit"style="margin-left:250px; margin-right: 60px;"> 提交</button>
<!--<button class="button bg-main icon-check-square-o" type="submit"> 取消</button>-->
<a class="button bg-main icon-check-square-o" href="/info" > 返回主页</a>
</div>
</div>
</form>
</div>
</div>
</body></html>

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title></title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}">
<script src="{{ url_for('static',filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static',filename='js/pintuer.js') }}"></script>
</head>
<body>
<img id="bg" src="{{ url_for('static',filename='images/11.jpg') }}"/>
</body>
</html>

@ -0,0 +1,56 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title>登录</title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}">
<script src="{{ url_for('static',filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static',filename='js/pintuer.js') }}"></script>
</head>
<body>
<div class="bg"></div>
<div class="container">
<div class="line bouncein">
<div class="xs6 xm4 xs3-move xm4-move">
<div style="height:150px;"></div>
<div class="media media-y margin-big-bottom">
</div>
<form class="form" method="post">
{{ form.hidden_tag() }}
<div class="panel loginbox">
<div class="text-center margin-big padding-big-top"><h1>评教系统</h1></div>
<div class="panel-body" style="padding:30px; padding-bottom:10px; padding-top:10px;">
<div class="form-group">
<div class="field field-icon-right">
<input type="text" class="input input-big" name="username" placeholder="登录账号" data-validate="required:请填写账号" />
<span class="icon icon-user margin-small"></span>
</div>
</div>
<div class="form-group">
<div class="field field-icon-right">
<input type="password" class="input input-big" name="password" placeholder="登录密码" data-validate="required:请填写密码" />
<span class="icon icon-key margin-small"></span>
</div>
</div>
<div class="form-group">
<div class="field field-icon-right">
<select name="status" class="input input-big" >
<option value=0>学生用户</option>
<option value=1>教师用户</option>
</select>
</div>
</div>
</div>
</div>
<div style="padding:15px;"><input type="submit" class="button button-block bg-main text-big input-big" value="登录"></div>
</form>
</div>
</div>
</div>
</body>
</html>

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title></title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}">
<script src="{{ url_for('static',filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static',filename='js/pintuer.js') }}"></script>
</head>
<body>
<form method="post" action="" id="listform">
<div class="panel admin-panel">
<div class="panel-head"><strong class="icon-reorder">课程列表</strong></div>
<!-- <div class="padding border-bottom">
<ul class="search" style="padding-left:10px;">
<li> <a class="button border-main icon-plus-square-o" href="editorProject.html" > 中期阶段项目</a> </li>
</ul>
</div>-->
<table class="table table-hover text-center">
<tr>
<th>课程编号</th>
<th>课程名称</th>
<th>授课老师</th>
<th>评教状态</th>
<th>操作</th>
</tr>
{% for course in stu_course %}
<tr >
<td >{{ course.course_id }}</td>
<td><font color="#00CC99">{{ course.course_name }}</font></td>
<td>{{ course.course_teacher }}</td>
{% if (course.course_teacher,username) in eva_info %}
<td><font color="#00CC99">已评教</font></td>
{% else %}
<td><font color="red">未评教</font></td>
{% endif %}
<td><div class="button-group"> <a class="button border-main" style="padding:2px 8px;" href="/courseinfo?course_id={{ course.course_id }}"><span class="icon-user"></span> 查看</a>
<a class="button border-red" href="/eva_teacher?course_id={{ course.course_id }}&course_name={{ course.course_name }}&course_teacher={{ course.course_teacher }}" style="padding:2px 8px;" ><span class="icon-edit" ></span> 评教</a> </div></td>
</tr>
{% endfor %}
</table>
</div>
</div>
</div>
</form>
<script type="text/javascript">
</script>
</body>
</html>

@ -0,0 +1,66 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title></title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}">
<script src="{{ url_for('static',filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static',filename='js/pintuer.js') }}"></script>
</head>
<body>
<div class="panel admin-panel">
<div class="panel-head"><strong><span class="icon-key"></span> 修改密码</strong></div>
<div class="body-content">
<form method="post" class="form-x" >
{{ form.hidden_tag() }}
<div class="form-group">
<div class="label">
<label for="sitename">用户名:</label>
</div>
<div class="field">
<label style="line-height:33px;">
{{ username }}
</label>
</div>
</div>
<div class="form-group">
<div class="label">
<label for="sitename">原始密码:</label>
</div>
<div class="field">
<input type="password" class="input w50" name="mpass" size="50" placeholder="请输入原始密码" data-validate="required:请输入原始密码" />
</div>
</div>
<div class="form-group">
<div class="label">
<label for="sitename">新密码:</label>
</div>
<div class="field">
<input type="password" class="input w50" name="newpass" size="50" placeholder="请输入新密码" data-validate="required:请输入新密码,length#>=5:新密码不能小于5位" />
</div>
</div>
<div class="form-group">
<div class="label">
<label for="sitename">确认新密码:</label>
</div>
<div class="field">
<input type="password" class="input w50" name="renewpass" size="50" placeholder="请再次输入新密码" data-validate="required:请再次输入新密码,repeat#newpass:两次输入的密码不一致" />
</div>
</div>
<div class="form-group">
<div class="label">
<label></label>
</div>
<div class="field">
<button class="button bg-main icon-check-square-o" type="submit"> 提交</button>
</div>
</div>
</form>
</div>
</div>
</body></html>

@ -0,0 +1,77 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title>学生个人主页</title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}">
<script src="{{ url_for('static',filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static',filename='js/Clock.js') }}" type=text/javascript></script>
</head>
<body style="background-color:#f2f9fd;">
<div class="header bg-main">
<div class="logo margin-big-left fadein-top">
<h1><img src="{{ url_for('static',filename='images/y.jpg') }}" class="radius-circle rotate-hover" height="50" alt="" />学生个人主页</h1>
</div>
<div class="head-l">
<span id=clock style="color: white;"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="color: #00ff99; font-size: 16px;">欢迎&nbsp;&nbsp; {{ username }}</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a class="button button-little bg-green" href="stu_info" >个人信息</a> &nbsp;&nbsp;
<a class="button button-little bg-red" href="/" >
<span class="icon-power-off"></span> 退出登录</a> </div>
</div>
<div class="leftnav">
<div class="leftnav-title"><strong><span class="icon-list"></span>菜单列表</strong></div>
<h2><span class="icon-user"></span>基本设置</h2>
<ul>
<li><a href="pass" target="right"><span class="icon-caret-right"></span>修改密码</a></li>
<li><a href="stu_info" target="right"><span class="icon-caret-right"></span>个人资料</a></li>
</ul>
<h2><span class="icon-pencil-square-o"></span>我的评教</h2>
<ul >
<li><a href="mycourse" target="right"><span class="icon-caret-right"></span>我的评教课表</a></li>
</ul>
</div>
<script type="text/javascript">
var clock = new Clock();
clock.display(document.getElementById("clock"));
$(function(){
$(".leftnav h2").click(function(){
$(this).next().slideToggle(200);
$(this).toggleClass("on");
})
$(".leftnav ul li a").click(function(){
$("#a_leader_txt").text($(this).text());
$(".leftnav ul li a").removeClass("on");
$(this).addClass("on");
})
$(".icon-home").click(function(){
$("#a_leader_txt").text("首页");
$(".leftnav ul li a").removeClass("on");
$(this).addClass("on");
})
});
</script>
<ul class="bread">
<li><a href="info" target="right" class="icon-home"> 首页</a></li>
<li><a href="##" id="a_leader_txt">首页</a></li>
</ul>
<div class="admin">
<iframe scrolling="auto" rameborder="0" src="info" name="right" width="100%" height="100%"></iframe>
</div>
<div style="text-align:center;">
</div>
</body>
</html>

@ -0,0 +1,122 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="{{ url_for('static',filename='css/bootstrap.css') }}">
<script src="{{ url_for('static',filename='js/bootstrap.js') }}"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title></title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}">
<script src="{{ url_for('static',filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static',filename='js/pintuer.js') }}"></script>
</head>
<body>
<div class="panel admin-panel">
<div class="panel-head" id="add"><strong><span class="icon-pencil-square-o"></span>个人信息</strong></div>
<div class="body-content">
<form method="post" class="form-x" action="">
<div style="padding-left:20px ;padding-bottom: 20px;">
<label>【基本信息】</label>
</div>
<div class="form-group">
<div class="label">
<label>学号:</label>
</div>
<div class="field l10" >
<input type="text" class="input w100" value="{{ stu_id }}" name="stu_id" />
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>姓名:</label>
</div>
<div class="field l10">
<input type="text" class="input w100" value="{{ name }}" name="name" />
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>年级:</label>
</div>
<div class="field l10">
<input type="text" class="input w50" value="{{ grade }}" name="tec_title" />
<div class="tips"></div>
</div>
</div>
<ul class="list-inline" style="padding-left: 40px; padding-bottom: 25px;">
<li>部门:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="department" value="{{ department }}" />
</div>
</li>
<li>性别:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="gender" value="{{ gender }}" />
</div>
</li>
</ul>
<ul class="list-inline" style="padding-left: 40px; padding-bottom: 25px;">
<li>入学年份:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="en_year" value="{{ en_year }}" />
</div>
</li>
</ul>
<ul class="list-inline" style="padding-left: 40px; padding-bottom: 25px;">
<li>出生年月:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="birthday" value="{{ birthday }}" style="padding:10px!important; height:auto!important;border:1px solid #ddd!important;" />
</div>
</li>
<li>邮箱:</li>
<li><div class="field">
<input type="text" class="input" name="email" value="{{ email }}" />
</div>
</li>
</ul>
<ul class="list-inline" style="padding-left: 65px; padding-bottom: 25px;">
<li>电话:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="number" value="{{ number }}" style="padding:10px!important; height:auto!important;border:1px solid #ddd!important;" />
</div>
</li>
</ul>
<ul class="list-inline" style="padding-left: 40px; padding-bottom: 25px;">
<li>政治面貌:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="pol_status" value="{{ pol_status }}" />
</div>
</li>
<li>学历:</li>
<li><div class="field">
<input type="text" class="input" name="edu_background" value="{{ edu_background }}" />
</div>
</li>
</ul>
<div class="form-group">
<div class="label">
<label>家庭地址:</label>
</div>
<div class="field l10" >
<input type="text" class="input w100" value="{{ address }}" name="address" />
<div class="tips"></div>
</div>
</div>
<div class="field">
<a class="button bg-main icon-check-square-o" href="/stu" style="margin-left: 500px;" > 返回主页</a>
</div>
</form>
</div>
</div>
</body></html>

@ -0,0 +1,78 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title>教师个人主页</title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}">
<script src="{{ url_for('static',filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static',filename='js/Clock.js') }}" type=text/javascript></script>
</head>
<body style="background-color:#f2f9fd;">
<div class="header bg-main">
<div class="logo margin-big-left fadein-top">
<h1><img src="{{ url_for('static',filename='images/y.jpg') }}" class="radius-circle rotate-hover" height="50" alt="" />教师个人主页</h1>
</div>
<div class="head-l">
<span id=clock style="color: white;"></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="color: #00ff99; font-size: 16px;">欢迎&nbsp;&nbsp; {{ username }}</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a class="button button-little bg-green" href="tea_info" >个人信息</a> &nbsp;&nbsp;
<a class="button button-little bg-red" href="/" >
<span class="icon-power-off"></span> 退出登录</a> </div>
</div>
<div class="leftnav">
<div class="leftnav-title"><strong><span class="icon-list"></span>菜单列表</strong></div>
<h2><span class="icon-user"></span>基本设置</h2>
<ul>
<li><a href="pass" target="right"><span class="icon-caret-right"></span>修改密码</a></li>
<li><a href="tea_info" target="right"><span class="icon-caret-right"></span>个人资料</a></li>
</ul>
<h2><span class="icon-pencil-square-o"></span>查看评教结果</h2>
<ul >
<li><a href="/teacourse" target="right"><span class="icon-caret-right"></span>我的课程</a></li>
</ul>
</div>
<script type="text/javascript">
var clock = new Clock();
clock.display(document.getElementById("clock"));
$(function(){
$(".leftnav h2").click(function(){
$(this).next().slideToggle(200);
$(this).toggleClass("on");
})
$(".leftnav ul li a").click(function(){
$("#a_leader_txt").text($(this).text());
$(".leftnav ul li a").removeClass("on");
$(this).addClass("on");
})
$(".icon-home").click(function(){
$("#a_leader_txt").text("所有公告");
$(".leftnav ul li a").removeClass("on");
$(this).addClass("on");
})
});
</script>
<ul class="bread">
<li><a href="info" target="right" class="icon-home"> 首页</a></li>
<li><a href="##" id="a_leader_txt">首页</a></li>
</ul>
<div class="admin">
<iframe scrolling="auto" rameborder="0" src="info" name="right" width="100%" height="100%"></iframe>
</div>
<div style="text-align:center;">
</div>
</body>
</html>

@ -0,0 +1,127 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="{{ url_for('static',filename='css/bootstrap.css') }}">
<script src="{{ url_for('static',filename='js/bootstrap.js') }}"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title></title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}">
<script src="{{ url_for('static',filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static',filename='js/pintuer.js') }}"></script>
</head>
<body>
<div class="panel admin-panel">
<div class="panel-head" id="add"><strong><span class="icon-pencil-square-o"></span>个人信息</strong></div>
<div class="body-content">
<form method="post" class="form-x" action="">
{{ form.hidden_tag() }}
<div style="padding-left:20px ;padding-bottom: 20px;">
<label>【基本信息】</label>
</div>
<div class="form-group">
<div class="label">
<label>工号:</label>
</div>
<div class="field l10" >
<input type="text" class="input w100" value="{{ tea_id }}" name="tea_id" readonly="readonly" />
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>姓名:</label>
</div>
<div class="field l10">
<input type="text" class="input w100" value="{{ name }}" name="name" readonly="readonly" />
<div class="tips"></div>
</div>
</div>
<div class="form-group">
<div class="label">
<label>职称:</label>
</div>
<div class="field l10">
<input type="text" class="input w50" value="{{ tec_title }}" name="tec_title" />
<div class="tips"></div>
</div>
</div>
<ul class="list-inline" style="padding-left: 40px; padding-bottom: 25px;">
<li>所处院系:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="department" value="{{ department }}" />
</div>
</li>
<li>性别:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="gender" value="{{ gender }}" />
</div>
</li>
</ul>
<ul class="list-inline" style="padding-left: 40px; padding-bottom: 25px;">
<li>入职年份:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="en_year" value="{{ en_year }}" />
</div>
</li>
</ul>
<ul class="list-inline" style="padding-left: 40px; padding-bottom: 25px;">
<li>出生年月:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="birthday" value="{{ birthday }}" style="padding:10px!important; height:auto!important;border:1px solid #ddd!important;" />
</div>
</li>
<li>邮箱:</li>
<li><div class="field">
<input type="text" class="input" name="email" value="{{ email }}" />
</div>
</li>
</ul>
<ul class="list-inline" style="padding-left: 65px; padding-bottom: 25px;">
<li>电话:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="number" value="{{ number }}" style="padding:10px!important; height:auto!important;border:1px solid #ddd!important;" />
</div>
</li>
</ul>
<ul class="list-inline" style="padding-left: 40px; padding-bottom: 25px;">
<li>政治面貌:</li>
<li style="padding-right: 200px;"><div class="field" >
<input type="text" class="input" name="pol_status" value="{{ pol_status }}" />
</div>
</li>
<li>学历:</li>
<li><div class="field">
<input type="text" class="input" name="edu_background" value="{{ edu_background }}" />
</div>
</li>
</ul>
<div class="form-group">
<div class="label">
<label>家庭地址:</label>
</div>
<div class="field l10" >
<input type="text" class="input w100" value="{{ address }}" name="address" />
<div class="tips"></div>
</div>
</div>
<div class="field">
<a class="button bg-main icon-check-square-o" href="/tea" style="margin-left: 250px;" > 返回主页</a>
<button class="button bg-main icon-check-square-o" type="submit"style="margin-left: 450px"> 确定修改</button>
</div>
</form>
</div>
</div>
</body></html>

@ -0,0 +1,46 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="renderer" content="webkit">
<title></title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/pintuer.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/admin.css') }}">
<script src="{{ url_for('static',filename='js/jquery.js') }}"></script>
<script src="{{ url_for('static',filename='js/pintuer.js') }}"></script>
</head>
<body>
<form method="post" action="" id="listform">
<div class="panel admin-panel">
<div class="panel-head"><strong class="icon-reorder">课程列表</strong></div>
<!-- <div class="padding border-bottom">
<ul class="search" style="padding-left:10px;">
<li> <a class="button border-main icon-plus-square-o" href="editorProject.html" > 中期阶段项目</a> </li>
</ul>
</div>-->
<table class="table table-hover text-center">
<tr>
<th>课程编号</th>
<th>课程名称</th>
<th>操作</th>
</tr>
{% for course in teacourse %}
<tr >
<td >{{ course.course_id }}</td>
<td><font color="red">{{ course.course_name }}</font></td>
<td><div class="button-group"> <a class="button border-main" style="padding:2px 8px;" href="/courseinfo?course_id={{ course.course_id }}"><span class="icon-user"></span> 课程信息</a>
<a class="button border-green" href="/eva_result?course_id={{ course.course_id }}&course_name={{ course.course_name }}&course_teacher={{ course.course_teacher }}" style="padding:2px 8px;" ><span class="icon-edit" ></span>评教结果 </a> </div></td>
</tr>
{% endfor %}
</table>
</div>
</div>
</div>
</form>
<script type="text/javascript">
</script>
</body>
</html>

@ -0,0 +1,39 @@
Copyright © 2014 by the Pallets team.
Some rights reserved.
Redistribution and use in source and binary forms of the software as
well as documentation, with or without modification, are permitted
provided that the following conditions are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
----
Click uses parts of optparse written by Gregory P. Ward and maintained
by the Python Software Foundation. This is limited to code in parser.py.
Copyright © 2001-2006 Gregory P. Ward. All rights reserved.
Copyright © 2002-2006 Python Software Foundation. All rights reserved.

@ -0,0 +1,121 @@
Metadata-Version: 2.1
Name: Click
Version: 7.0
Summary: Composable command line interface toolkit
Home-page: https://palletsprojects.com/p/click/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
Maintainer: Pallets Team
Maintainer-email: contact@palletsprojects.com
License: BSD
Project-URL: Documentation, https://click.palletsprojects.com/
Project-URL: Code, https://github.com/pallets/click
Project-URL: Issue tracker, https://github.com/pallets/click/issues
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
\$ click\_
==========
Click is a Python package for creating beautiful command line interfaces
in a composable way with as little code as necessary. It's the "Command
Line Interface Creation Kit". It's highly configurable but comes with
sensible defaults out of the box.
It aims to make the process of writing command line tools quick and fun
while also preventing any frustration caused by the inability to
implement an intended CLI API.
Click in three points:
- Arbitrary nesting of commands
- Automatic help page generation
- Supports lazy loading of subcommands at runtime
Installing
----------
Install and update using `pip`_:
.. code-block:: text
$ pip install click
Click supports Python 3.4 and newer, Python 2.7, and PyPy.
.. _pip: https://pip.pypa.io/en/stable/quickstart/
A Simple Example
----------------
What does it look like? Here is an example of a simple Click program:
.. code-block:: python
import click
@click.command()
@click.option("--count", default=1, help="Number of greetings.")
@click.option("--name", prompt="Your name",
help="The person to greet.")
def hello(count, name):
"""Simple program that greets NAME for a total of COUNT times."""
for _ in range(count):
click.echo("Hello, %s!" % name)
if __name__ == '__main__':
hello()
And what it looks like when run:
.. code-block:: text
$ python hello.py --count=3
Your name: Click
Hello, Click!
Hello, Click!
Hello, Click!
Donate
------
The Pallets organization develops and supports Click and other popular
packages. In order to grow the community of contributors and users, and
allow the maintainers to devote more time to the projects, `please
donate today`_.
.. _please donate today: https://palletsprojects.com/donate
Links
-----
* Website: https://palletsprojects.com/p/click/
* Documentation: https://click.palletsprojects.com/
* License: `BSD <https://github.com/pallets/click/blob/master/LICENSE.rst>`_
* Releases: https://pypi.org/project/click/
* Code: https://github.com/pallets/click
* Issue tracker: https://github.com/pallets/click/issues
* Test status:
* Linux, Mac: https://travis-ci.org/pallets/click
* Windows: https://ci.appveyor.com/project/pallets/click
* Test coverage: https://codecov.io/gh/pallets/click

@ -0,0 +1,40 @@
Click-7.0.dist-info/LICENSE.txt,sha256=4hIxn676T0Wcisk3_chVcECjyrivKTZsoqSNI5AlIlw,1876
Click-7.0.dist-info/METADATA,sha256=-r8jeke3Zer4diRvT1MjFZuiJ6yTT_qFP39svLqdaLI,3516
Click-7.0.dist-info/RECORD,,
Click-7.0.dist-info/WHEEL,sha256=gduuPyBvFJQSQ0zdyxF7k0zynDXbIbvg5ZBHoXum5uk,110
Click-7.0.dist-info/top_level.txt,sha256=J1ZQogalYS4pphY_lPECoNMfw0HzTSrZglC4Yfwo4xA,6
click/__init__.py,sha256=HjGThQ7tef9kkwCV371TBnrf0SAi6fKfU_jtEnbYTvQ,2789
click/_bashcomplete.py,sha256=iaNUmtxag0YPfxba3TDYCNietiTMQIrvhRLj-H8okFU,11014
click/_compat.py,sha256=vYmvoj4opPxo-c-2GMQQjYT_r_QkOKybkfGoeVrt0dA,23399
click/_termui_impl.py,sha256=xHmLtOJhKUCVD6168yucJ9fknUJPAMs0eUTPgVUO-GQ,19611
click/_textwrap.py,sha256=gwS4m7bdQiJnzaDG8osFcRb-5vn4t4l2qSCy-5csCEc,1198
click/_unicodefun.py,sha256=QHy2_5jYlX-36O-JVrTHNnHOqg8tquUR0HmQFev7Ics,4364
click/_winconsole.py,sha256=PPWVak8Iikm_gAPsxMrzwsVFCvHgaW3jPaDWZ1JBl3U,8965
click/core.py,sha256=q8FLcDZsagBGSRe5Y9Hi_FGvAeZvusNfoO5EkhkSQ8Y,75305
click/decorators.py,sha256=idKt6duLUUfAFftrHoREi8MJSd39XW36pUVHthdglwk,11226
click/exceptions.py,sha256=CNpAjBAE7qjaV4WChxQeak95e5yUOau8AsvT-8m6wss,7663
click/formatting.py,sha256=eh-cypTUAhpI3HD-K4ZpR3vCiURIO62xXvKkR3tNUTM,8889
click/globals.py,sha256=oQkou3ZQ5DgrbVM6BwIBirwiqozbjfirzsLGAlLRRdg,1514
click/parser.py,sha256=m-nGZz4VwprM42_qtFlWFGo7yRJQxkBlRcZodoH593Y,15510
click/termui.py,sha256=o_ZXB2jyvL2Rce7P_bFGq452iyBq9ykJyRApIPMCZO0,23207
click/testing.py,sha256=aYGqY_iWLu2p4k7lkuJ6t3fqpf6aPGqTsyLzNY_ngKg,13062
click/types.py,sha256=2Q929p-aBP_ZYuMFJqJR-Ipucofv3fmDc5JzBDPmzJU,23287
click/utils.py,sha256=6-D0WkAxvv9FkgHXSHwDIv0l9Gdx9Mm6Z5vuKNLIfZI,15763
Click-7.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
click/__pycache__/core.cpython-36.pyc,,
click/__pycache__/decorators.cpython-36.pyc,,
click/__pycache__/exceptions.cpython-36.pyc,,
click/__pycache__/formatting.cpython-36.pyc,,
click/__pycache__/globals.cpython-36.pyc,,
click/__pycache__/parser.cpython-36.pyc,,
click/__pycache__/termui.cpython-36.pyc,,
click/__pycache__/testing.cpython-36.pyc,,
click/__pycache__/types.cpython-36.pyc,,
click/__pycache__/utils.cpython-36.pyc,,
click/__pycache__/_bashcomplete.cpython-36.pyc,,
click/__pycache__/_compat.cpython-36.pyc,,
click/__pycache__/_termui_impl.cpython-36.pyc,,
click/__pycache__/_textwrap.cpython-36.pyc,,
click/__pycache__/_unicodefun.cpython-36.pyc,,
click/__pycache__/_winconsole.cpython-36.pyc,,
click/__pycache__/__init__.cpython-36.pyc,,

@ -0,0 +1,6 @@
Wheel-Version: 1.0
Generator: bdist_wheel (0.31.1)
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any

@ -0,0 +1,31 @@
Copyright © 2010 by the Pallets team.
Some rights reserved.
Redistribution and use in source and binary forms of the software as
well as documentation, with or without modification, are permitted
provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

@ -0,0 +1,130 @@
Metadata-Version: 2.1
Name: Flask
Version: 1.0.2
Summary: A simple framework for building complex web applications.
Home-page: https://www.palletsprojects.com/p/flask/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
Maintainer: Pallets team
Maintainer-email: contact@palletsprojects.com
License: BSD
Project-URL: Documentation, http://flask.pocoo.org/docs/
Project-URL: Code, https://github.com/pallets/flask
Project-URL: Issue tracker, https://github.com/pallets/flask/issues
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: dev
Provides-Extra: docs
Provides-Extra: dotenv
Requires-Dist: Werkzeug (>=0.14)
Requires-Dist: Jinja2 (>=2.10)
Requires-Dist: itsdangerous (>=0.24)
Requires-Dist: click (>=5.1)
Provides-Extra: dev
Requires-Dist: pytest (>=3); extra == 'dev'
Requires-Dist: coverage; extra == 'dev'
Requires-Dist: tox; extra == 'dev'
Requires-Dist: sphinx; extra == 'dev'
Requires-Dist: pallets-sphinx-themes; extra == 'dev'
Requires-Dist: sphinxcontrib-log-cabinet; extra == 'dev'
Provides-Extra: docs
Requires-Dist: sphinx; extra == 'docs'
Requires-Dist: pallets-sphinx-themes; extra == 'docs'
Requires-Dist: sphinxcontrib-log-cabinet; extra == 'docs'
Provides-Extra: dotenv
Requires-Dist: python-dotenv; extra == 'dotenv'
Flask
=====
Flask is a lightweight `WSGI`_ web application framework. It is designed
to make getting started quick and easy, with the ability to scale up to
complex applications. It began as a simple wrapper around `Werkzeug`_
and `Jinja`_ and has become one of the most popular Python web
application frameworks.
Flask offers suggestions, but doesn't enforce any dependencies or
project layout. It is up to the developer to choose the tools and
libraries they want to use. There are many extensions provided by the
community that make adding new functionality easy.
Installing
----------
Install and update using `pip`_:
.. code-block:: text
pip install -U Flask
A Simple Example
----------------
.. code-block:: python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
.. code-block:: text
$ FLASK_APP=hello.py flask run
* Serving Flask app "hello"
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Donate
------
The Pallets organization develops and supports Flask and the libraries
it uses. In order to grow the community of contributors and users, and
allow the maintainers to devote more time to the projects, `please
donate today`_.
.. _please donate today: https://psfmember.org/civicrm/contribute/transact?reset=1&id=20
Links
-----
* Website: https://www.palletsprojects.com/p/flask/
* Documentation: http://flask.pocoo.org/docs/
* License: `BSD <https://github.com/pallets/flask/blob/master/LICENSE>`_
* Releases: https://pypi.org/project/Flask/
* Code: https://github.com/pallets/flask
* Issue tracker: https://github.com/pallets/flask/issues
* Test status:
* Linux, Mac: https://travis-ci.org/pallets/flask
* Windows: https://ci.appveyor.com/project/pallets/flask
* Test coverage: https://codecov.io/gh/pallets/flask
.. _WSGI: https://wsgi.readthedocs.io
.. _Werkzeug: https://www.palletsprojects.com/p/werkzeug/
.. _Jinja: https://www.palletsprojects.com/p/jinja/
.. _pip: https://pip.pypa.io/en/stable/quickstart/

@ -0,0 +1,48 @@
Flask-1.0.2.dist-info/LICENSE.txt,sha256=ziEXA3AIuaiUn1qe4cd1XxCESWTYrk4TjN7Qb06J3l8,1575
Flask-1.0.2.dist-info/METADATA,sha256=iA5tiNWzTtgCVe80aTZGNWsckj853fJyfvHs9U-WZRk,4182
Flask-1.0.2.dist-info/RECORD,,
Flask-1.0.2.dist-info/WHEEL,sha256=J3CsTk7Mf2JNUyhImI-mjX-fmI4oDjyiXgWT4qgZiCE,110
Flask-1.0.2.dist-info/entry_points.txt,sha256=gBLA1aKg0OYR8AhbAfg8lnburHtKcgJLDU52BBctN0k,42
Flask-1.0.2.dist-info/top_level.txt,sha256=dvi65F6AeGWVU0TBpYiC04yM60-FX1gJFkK31IKQr5c,6
flask/__init__.py,sha256=qq8lK6QQbxJALf1igz7qsvUwOTAoKvFGfdLm7jPNsso,1673
flask/__main__.py,sha256=pgIXrHhxM5MAMvgzAqWpw_t6AXZ1zG38us4JRgJKtxk,291
flask/_compat.py,sha256=UDFGhosh6mOdNB-4evKPuneHum1OpcAlwTNJCRm0irQ,2892
flask/app.py,sha256=ahpe3T8w98rQd_Er5d7uDxK57S1nnqGQx3V3hirBovU,94147
flask/blueprints.py,sha256=Cyhl_x99tgwqEZPtNDJUFneAfVJxWfEU4bQA7zWS6VU,18331
flask/cli.py,sha256=30QYAO10Do9LbZYCLgfI_xhKjASdLopL8wKKVUGS2oA,29442
flask/config.py,sha256=kznUhj4DLYxsTF_4kfDG8GEHto1oZG_kqblyrLFtpqQ,9951
flask/ctx.py,sha256=leFzS9fzmo0uaLCdxpHc5_iiJZ1H0X_Ig4yPCOvT--g,16224
flask/debughelpers.py,sha256=1ceC-UyqZTd4KsJkf0OObHPsVt5R3T6vnmYhiWBjV-w,6479
flask/globals.py,sha256=pGg72QW_-4xUfsI33I5L_y76c21AeqfSqXDcbd8wvXU,1649
flask/helpers.py,sha256=YCl8D1plTO1evEYP4KIgaY3H8Izww5j4EdgRJ89oHTw,40106
flask/logging.py,sha256=qV9h0vt7NIRkKM9OHDWndzO61E5CeBMlqPJyTt-W2Wc,2231
flask/sessions.py,sha256=2XHV4ASREhSEZ8bsPQW6pNVNuFtbR-04BzfKg0AfvHo,14452
flask/signals.py,sha256=BGQbVyCYXnzKK2DVCzppKFyWN1qmrtW1QMAYUs-1Nr8,2211
flask/templating.py,sha256=FDfWMbpgpC3qObW8GGXRAVrkHFF8K4CHOJymB1wvULI,4914
flask/testing.py,sha256=XD3gWNvLUV8dqVHwKd9tZzsj81fSHtjOphQ1wTNtlMs,9379
flask/views.py,sha256=Wy-_WkUVtCfE2zCXYeJehNgHuEtviE4v3HYfJ--MpbY,5733
flask/wrappers.py,sha256=1Z9hF5-hXQajn_58XITQFRY8efv3Vy3uZ0avBfZu6XI,7511
flask/json/__init__.py,sha256=Ns1Hj805XIxuBMh2z0dYnMVfb_KUgLzDmP3WoUYaPhw,10729
flask/json/tag.py,sha256=9ehzrmt5k7hxf7ZEK0NOs3swvQyU9fWNe-pnYe69N60,8223
../../Scripts/flask.exe,sha256=K5TBdJYqVE9zoev44R-0Ixinrs3wqI6NqIqno5UgnVI,102753
Flask-1.0.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
flask/json/__pycache__/tag.cpython-36.pyc,,
flask/json/__pycache__/__init__.cpython-36.pyc,,
flask/__pycache__/app.cpython-36.pyc,,
flask/__pycache__/blueprints.cpython-36.pyc,,
flask/__pycache__/cli.cpython-36.pyc,,
flask/__pycache__/config.cpython-36.pyc,,
flask/__pycache__/ctx.cpython-36.pyc,,
flask/__pycache__/debughelpers.cpython-36.pyc,,
flask/__pycache__/globals.cpython-36.pyc,,
flask/__pycache__/helpers.cpython-36.pyc,,
flask/__pycache__/logging.cpython-36.pyc,,
flask/__pycache__/sessions.cpython-36.pyc,,
flask/__pycache__/signals.cpython-36.pyc,,
flask/__pycache__/templating.cpython-36.pyc,,
flask/__pycache__/testing.cpython-36.pyc,,
flask/__pycache__/views.cpython-36.pyc,,
flask/__pycache__/wrappers.cpython-36.pyc,,
flask/__pycache__/_compat.cpython-36.pyc,,
flask/__pycache__/__init__.cpython-36.pyc,,
flask/__pycache__/__main__.cpython-36.pyc,,

@ -0,0 +1,6 @@
Wheel-Version: 1.0
Generator: bdist_wheel (0.31.0)
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any

@ -0,0 +1,3 @@
[console_scripts]
flask = flask.cli:main

@ -0,0 +1,44 @@
Metadata-Version: 1.1
Name: Flask-Login
Version: 0.4.1
Summary: User session management for Flask
Home-page: https://github.com/maxcountryman/flask-login
Author: Matthew Frazier
Author-email: leafstormrush@gmail.com
License: MIT
Description:
Flask-Login
-----------
Flask-Login provides user session management for Flask. It handles the common
tasks of logging in, logging out, and remembering your users'
sessions over extended periods of time.
Flask-Login is not bound to any particular database system or permissions
model. The only requirement is that your user objects implement a few
methods, and that you provide a callback to the extension capable of
loading users from their ID.
Links
`````
* `documentation <https://flask-login.readthedocs.io/en/latest/>`_
* `development version <https://github.com/maxcountryman/flask-login>`_
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules

@ -0,0 +1,20 @@
LICENSE
MANIFEST.in
README.md
setup.cfg
setup.py
Flask_Login.egg-info/PKG-INFO
Flask_Login.egg-info/SOURCES.txt
Flask_Login.egg-info/dependency_links.txt
Flask_Login.egg-info/not-zip-safe
Flask_Login.egg-info/requires.txt
Flask_Login.egg-info/top_level.txt
Flask_Login.egg-info/version_info.json
flask_login/__about__.py
flask_login/__init__.py
flask_login/_compat.py
flask_login/config.py
flask_login/login_manager.py
flask_login/mixins.py
flask_login/signals.py
flask_login/utils.py

@ -0,0 +1,23 @@
..\flask_login\__about__.py
..\flask_login\__init__.py
..\flask_login\__pycache__\__about__.cpython-36.pyc
..\flask_login\__pycache__\__init__.cpython-36.pyc
..\flask_login\__pycache__\_compat.cpython-36.pyc
..\flask_login\__pycache__\config.cpython-36.pyc
..\flask_login\__pycache__\login_manager.cpython-36.pyc
..\flask_login\__pycache__\mixins.cpython-36.pyc
..\flask_login\__pycache__\signals.cpython-36.pyc
..\flask_login\__pycache__\utils.cpython-36.pyc
..\flask_login\_compat.py
..\flask_login\config.py
..\flask_login\login_manager.py
..\flask_login\mixins.py
..\flask_login\signals.py
..\flask_login\utils.py
PKG-INFO
SOURCES.txt
dependency_links.txt
not-zip-safe
requires.txt
top_level.txt
version_info.json

@ -0,0 +1,6 @@
{
"release_date": null,
"version": "0.4.0",
"maintainer": "",
"body": ""
}

@ -0,0 +1,15 @@
Flask-SQLAlchemy
----------------
Adds SQLAlchemy support to your Flask application.
Links
`````
* `documentation <http://flask-sqlalchemy.pocoo.org>`_
* `development version
<http://github.com/mitsuhiko/flask-sqlalchemy/zipball/master#egg=Flask-SQLAlchemy-dev>`_

@ -0,0 +1,31 @@
Copyright (c) 2014 by Armin Ronacher.
Some rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* The names of the contributors may not be used to endorse or
promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

@ -0,0 +1,43 @@
Metadata-Version: 2.0
Name: Flask-SQLAlchemy
Version: 2.3.2
Summary: Adds SQLAlchemy support to your Flask application
Home-page: http://github.com/mitsuhiko/flask-sqlalchemy
Author: Phil Howell
Author-email: phil@quae.co.uk
License: BSD
Description-Content-Type: UNKNOWN
Platform: any
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: Flask (>=0.10)
Requires-Dist: SQLAlchemy (>=0.8.0)
Flask-SQLAlchemy
----------------
Adds SQLAlchemy support to your Flask application.
Links
`````
* `documentation <http://flask-sqlalchemy.pocoo.org>`_
* `development version
<http://github.com/mitsuhiko/flask-sqlalchemy/zipball/master#egg=Flask-SQLAlchemy-dev>`_

@ -0,0 +1,14 @@
Flask_SQLAlchemy-2.3.2.dist-info/DESCRIPTION.rst,sha256=Mp4bpckSjf082xflOARFwzWLTnUszq7JxcY0dR9vD2w,273
Flask_SQLAlchemy-2.3.2.dist-info/LICENSE.txt,sha256=2smrI3hNiP6c5TcX0fa6fqODgsdJVLC166X0kVxei9A,1457
Flask_SQLAlchemy-2.3.2.dist-info/METADATA,sha256=iDXuOIujwz5MXBrH-I4WsW7kLKsY07feI7hggFHFfEk,1384
Flask_SQLAlchemy-2.3.2.dist-info/RECORD,,
Flask_SQLAlchemy-2.3.2.dist-info/WHEEL,sha256=kdsN-5OJAZIiHN-iO4Rhl82KyS0bDWf4uBwMbkNafr8,110
Flask_SQLAlchemy-2.3.2.dist-info/metadata.json,sha256=VOw756wP14azHrBwNxHIfbYkK4DkEPrCaV6Kf0VO36E,1257
Flask_SQLAlchemy-2.3.2.dist-info/top_level.txt,sha256=w2K4fNNoTh4HItoFfz2FRQShSeLcvHYrzU_sZov21QU,17
flask_sqlalchemy/__init__.py,sha256=0ZyibSbbC_Q1x8Kemp_2s2-NCowd_-CRvLyE1dPfnvw,35991
flask_sqlalchemy/_compat.py,sha256=6rFcZZ3kxvyeJUC_FyB62mG1saNU8iQthzWHLDcKPVE,1057
flask_sqlalchemy/model.py,sha256=7CTvGxxKmLscwcwq9mVT5ny_w301QZvTVjSqMoMx6DI,4974
Flask_SQLAlchemy-2.3.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
flask_sqlalchemy/__pycache__/model.cpython-36.pyc,,
flask_sqlalchemy/__pycache__/_compat.cpython-36.pyc,,
flask_sqlalchemy/__pycache__/__init__.cpython-36.pyc,,

@ -0,0 +1,6 @@
Wheel-Version: 1.0
Generator: bdist_wheel (0.30.0)
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any

@ -0,0 +1 @@
{"classifiers": ["Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6"], "description_content_type": "UNKNOWN", "extensions": {"python.details": {"contacts": [{"email": "phil@quae.co.uk", "name": "Phil Howell", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "project_urls": {"Home": "http://github.com/mitsuhiko/flask-sqlalchemy"}}}, "extras": [], "generator": "bdist_wheel (0.30.0)", "license": "BSD", "metadata_version": "2.0", "name": "Flask-SQLAlchemy", "platform": "any", "run_requires": [{"requires": ["Flask (>=0.10)", "SQLAlchemy (>=0.8.0)"]}], "summary": "Adds SQLAlchemy support to your Flask application", "version": "2.3.2"}

@ -0,0 +1,21 @@
Flask-WTF
=========
.. image:: https://travis-ci.org/lepture/flask-wtf.svg?branch=master
:target: https://travis-ci.org/lepture/flask-wtf
:alt: Travis CI Status
.. image:: https://coveralls.io/repos/lepture/flask-wtf/badge.svg?branch=master
:target: https://coveralls.io/r/lepture/flask-wtf
:alt: Coverage Status
Simple integration of Flask and WTForms, including CSRF, file upload,
and reCAPTCHA.
Links
-----
* `Documentation <https://flask-wtf.readthedocs.io>`_
* `PyPI <https://pypi.python.org/pypi/Flask-WTF>`_
* `GitHub <https://github.com/lepture/flask-wtf>`_

@ -0,0 +1,32 @@
Copyright (c) 2010 by Dan Jacob.
Copyright (c) 2013 by Hsiaoming Yang.
Some rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* The names of the contributors may not be used to endorse or
promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

@ -0,0 +1,52 @@
Metadata-Version: 2.0
Name: Flask-WTF
Version: 0.14.2
Summary: Simple integration of Flask and WTForms.
Home-page: https://github.com/lepture/flask-wtf
Author: Hsiaoming Yang
Author-email: me@lepture.com
License: BSD
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: Flask
Requires-Dist: WTForms
Flask-WTF
=========
.. image:: https://travis-ci.org/lepture/flask-wtf.svg?branch=master
:target: https://travis-ci.org/lepture/flask-wtf
:alt: Travis CI Status
.. image:: https://coveralls.io/repos/lepture/flask-wtf/badge.svg?branch=master
:target: https://coveralls.io/r/lepture/flask-wtf
:alt: Coverage Status
Simple integration of Flask and WTForms, including CSRF, file upload,
and reCAPTCHA.
Links
-----
* `Documentation <https://flask-wtf.readthedocs.io>`_
* `PyPI <https://pypi.python.org/pypi/Flask-WTF>`_
* `GitHub <https://github.com/lepture/flask-wtf>`_

@ -0,0 +1,30 @@
Flask_WTF-0.14.2.dist-info/DESCRIPTION.rst,sha256=vyJWnOD4vgnZ6x2ERr5EH1l2uzLxXCBhr_O1L6Ell2E,584
Flask_WTF-0.14.2.dist-info/LICENSE.txt,sha256=oHX42YrP2wXdmHFiQrniwbOrmHIpJrPEz2yRasFOg1A,1490
Flask_WTF-0.14.2.dist-info/METADATA,sha256=M8ZfImxUciRZ5Av5r1x37JnEC3wG5sacQv346wmldHU,1846
Flask_WTF-0.14.2.dist-info/RECORD,,
Flask_WTF-0.14.2.dist-info/WHEEL,sha256=5wvfB7GvgZAbKBSE9uX9Zbi6LCL-_KgezgHblXhCRnM,113
Flask_WTF-0.14.2.dist-info/metadata.json,sha256=qGwhg5DSr2WilK8cvCcQsdrtDJ5NFgR1faLrO8YZCAY,1370
Flask_WTF-0.14.2.dist-info/top_level.txt,sha256=zK3flQPSjYTkAMjB0V6Jhu3jyotC0biL1mMhzitYoog,10
flask_wtf/__init__.py,sha256=zNLRzvfi7PLTc7jkqQT7pzgtsw9_9eN7BfO4fzwKxJc,406
flask_wtf/_compat.py,sha256=4h1U_W5vbM9L8sJ4ZPFevuneM1TirnBTTVrsHRH3uUE,849
flask_wtf/csrf.py,sha256=suKAZarzLIBuiJFqwP--RldEYabPj0DGfYkQA32Cc1E,11554
flask_wtf/file.py,sha256=2UnODjSq47IjsFQMiu_z218vFA5pnQ9nL1FpX7hpK1M,2971
flask_wtf/form.py,sha256=lpx-ItUnKjYOW8VxQpBAlbhoROJNd2PHi3v0loPPyYI,4948
flask_wtf/html5.py,sha256=ReZHJto8DAZkO3BxUDdHnkyz5mM21KtqKYh0achJ5IM,372
flask_wtf/i18n.py,sha256=xMB_jHCOaWfF1RXm7E6hsRHwPsUyVyKX2Rhy3tBOUgk,1790
flask_wtf/recaptcha/__init__.py,sha256=q3TC7tZPSAZ3On3GApZKGn0EcydX4zprisbyTlhN3sQ,86
flask_wtf/recaptcha/fields.py,sha256=kN_10iZYQcYg1EtxFp4B87BlFnnrJCktrh7bTykOVj4,453
flask_wtf/recaptcha/validators.py,sha256=8UgjA72OxUyHVk_lm8-fGhPEvKgkMtsoFNt7yzjo0xw,2398
flask_wtf/recaptcha/widgets.py,sha256=me-oaqMNPW2BLujNTuDHCXWcVhh6eI7wlm6_TIrIF_U,1267
Flask_WTF-0.14.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
flask_wtf/recaptcha/__pycache__/fields.cpython-36.pyc,,
flask_wtf/recaptcha/__pycache__/validators.cpython-36.pyc,,
flask_wtf/recaptcha/__pycache__/widgets.cpython-36.pyc,,
flask_wtf/recaptcha/__pycache__/__init__.cpython-36.pyc,,
flask_wtf/__pycache__/csrf.cpython-36.pyc,,
flask_wtf/__pycache__/file.cpython-36.pyc,,
flask_wtf/__pycache__/form.cpython-36.pyc,,
flask_wtf/__pycache__/html5.cpython-36.pyc,,
flask_wtf/__pycache__/i18n.cpython-36.pyc,,
flask_wtf/__pycache__/_compat.cpython-36.pyc,,
flask_wtf/__pycache__/__init__.cpython-36.pyc,,

@ -0,0 +1,6 @@
Wheel-Version: 1.0
Generator: bdist_wheel (0.30.0.a0)
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any

@ -0,0 +1 @@
{"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Flask", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules"], "extensions": {"python.details": {"contacts": [{"email": "me@lepture.com", "name": "Hsiaoming Yang", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "project_urls": {"Home": "https://github.com/lepture/flask-wtf"}}}, "extras": [], "generator": "bdist_wheel (0.30.0.a0)", "license": "BSD", "metadata_version": "2.0", "name": "Flask-WTF", "platform": "any", "run_requires": [{"requires": ["Flask", "WTForms"]}], "summary": "Simple integration of Flask and WTForms.", "version": "0.14.2"}

@ -0,0 +1,37 @@
Jinja2
~~~~~~
Jinja2 is a template engine written in pure Python. It provides a
`Django`_ inspired non-XML syntax but supports inline expressions and
an optional `sandboxed`_ environment.
Nutshell
--------
Here a small example of a Jinja template::
{% extends 'base.html' %}
{% block title %}Memberlist{% endblock %}
{% block content %}
<ul>
{% for user in users %}
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>
{% endblock %}
Philosophy
----------
Application logic is for the controller but don't try to make the life
for the template designer too hard by giving him too few functionality.
For more informations visit the new `Jinja2 webpage`_ and `documentation`_.
.. _sandboxed: https://en.wikipedia.org/wiki/Sandbox_(computer_security)
.. _Django: https://www.djangoproject.com/
.. _Jinja2 webpage: http://jinja.pocoo.org/
.. _documentation: http://jinja.pocoo.org/2/documentation/

@ -0,0 +1,31 @@
Copyright (c) 2009 by the Jinja Team, see AUTHORS for more details.
Some rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* The names of the contributors may not be used to endorse or
promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

@ -0,0 +1,68 @@
Metadata-Version: 2.0
Name: Jinja2
Version: 2.10
Summary: A small but fast and easy to use stand-alone template engine written in pure python.
Home-page: http://jinja.pocoo.org/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
License: BSD
Description-Content-Type: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup :: HTML
Requires-Dist: MarkupSafe (>=0.23)
Provides-Extra: i18n
Requires-Dist: Babel (>=0.8); extra == 'i18n'
Jinja2
~~~~~~
Jinja2 is a template engine written in pure Python. It provides a
`Django`_ inspired non-XML syntax but supports inline expressions and
an optional `sandboxed`_ environment.
Nutshell
--------
Here a small example of a Jinja template::
{% extends 'base.html' %}
{% block title %}Memberlist{% endblock %}
{% block content %}
<ul>
{% for user in users %}
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>
{% endblock %}
Philosophy
----------
Application logic is for the controller but don't try to make the life
for the template designer too hard by giving him too few functionality.
For more informations visit the new `Jinja2 webpage`_ and `documentation`_.
.. _sandboxed: https://en.wikipedia.org/wiki/Sandbox_(computer_security)
.. _Django: https://www.djangoproject.com/
.. _Jinja2 webpage: http://jinja.pocoo.org/
.. _documentation: http://jinja.pocoo.org/2/documentation/

@ -0,0 +1,63 @@
Jinja2-2.10.dist-info/DESCRIPTION.rst,sha256=b5ckFDoM7vVtz_mAsJD4OPteFKCqE7beu353g4COoYI,978
Jinja2-2.10.dist-info/LICENSE.txt,sha256=JvzUNv3Io51EiWrAPm8d_SXjhJnEjyDYvB3Tvwqqils,1554
Jinja2-2.10.dist-info/METADATA,sha256=18EgU8zR6-av-0-5y_gXebzK4GnBB_76lALUsl-6QHM,2258
Jinja2-2.10.dist-info/RECORD,,
Jinja2-2.10.dist-info/WHEEL,sha256=kdsN-5OJAZIiHN-iO4Rhl82KyS0bDWf4uBwMbkNafr8,110
Jinja2-2.10.dist-info/entry_points.txt,sha256=NdzVcOrqyNyKDxD09aERj__3bFx2paZhizFDsKmVhiA,72
Jinja2-2.10.dist-info/metadata.json,sha256=NPUJ9TMBxVQAv_kTJzvU8HwmP-4XZvbK9mz6_4YUVl4,1473
Jinja2-2.10.dist-info/top_level.txt,sha256=PkeVWtLb3-CqjWi1fO29OCbj55EhX_chhKrCdrVe_zs,7
jinja2/__init__.py,sha256=xJHjaMoy51_KXn1wf0cysH6tUUifUxZCwSOfcJGEYZw,2614
jinja2/_compat.py,sha256=xP60CE5Qr8FTYcDE1f54tbZLKGvMwYml4-8T7Q4KG9k,2596
jinja2/_identifier.py,sha256=W1QBSY-iJsyt6oR_nKSuNNCzV95vLIOYgUNPUI1d5gU,1726
jinja2/asyncfilters.py,sha256=cTDPvrS8Hp_IkwsZ1m9af_lr5nHysw7uTa5gV0NmZVE,4144
jinja2/asyncsupport.py,sha256=UErQ3YlTLaSjFb94P4MVn08-aVD9jJxty2JVfMRb-1M,7878
jinja2/bccache.py,sha256=nQldx0ZRYANMyfvOihRoYFKSlUdd5vJkS7BjxNwlOZM,12794
jinja2/compiler.py,sha256=BqC5U6JxObSRhblyT_a6Tp5GtEU5z3US1a4jLQaxxgo,65386
jinja2/constants.py,sha256=uwwV8ZUhHhacAuz5PTwckfsbqBaqM7aKfyJL7kGX5YQ,1626
jinja2/debug.py,sha256=WTVeUFGUa4v6ReCsYv-iVPa3pkNB75OinJt3PfxNdXs,12045
jinja2/defaults.py,sha256=Em-95hmsJxIenDCZFB1YSvf9CNhe9rBmytN3yUrBcWA,1400
jinja2/environment.py,sha256=VnkAkqw8JbjZct4tAyHlpBrka2vqB-Z58RAP-32P1ZY,50849
jinja2/exceptions.py,sha256=_Rj-NVi98Q6AiEjYQOsP8dEIdu5AlmRHzcSNOPdWix4,4428
jinja2/ext.py,sha256=atMQydEC86tN1zUsdQiHw5L5cF62nDbqGue25Yiu3N4,24500
jinja2/filters.py,sha256=yOAJk0MsH-_gEC0i0U6NweVQhbtYaC-uE8xswHFLF4w,36528
jinja2/idtracking.py,sha256=2GbDSzIvGArEBGLkovLkqEfmYxmWsEf8c3QZwM4uNsw,9197
jinja2/lexer.py,sha256=ySEPoXd1g7wRjsuw23uimS6nkGN5aqrYwcOKxCaVMBQ,28559
jinja2/loaders.py,sha256=xiTuURKAEObyym0nU8PCIXu_Qp8fn0AJ5oIADUUm-5Q,17382
jinja2/meta.py,sha256=fmKHxkmZYAOm9QyWWy8EMd6eefAIh234rkBMW2X4ZR8,4340
jinja2/nativetypes.py,sha256=_sJhS8f-8Q0QMIC0dm1YEdLyxEyoO-kch8qOL5xUDfE,7308
jinja2/nodes.py,sha256=L10L_nQDfubLhO3XjpF9qz46FSh2clL-3e49ogVlMmA,30853
jinja2/optimizer.py,sha256=MsdlFACJ0FRdPtjmCAdt7JQ9SGrXFaDNUaslsWQaG3M,1722
jinja2/parser.py,sha256=lPzTEbcpTRBLw8ii6OYyExHeAhaZLMA05Hpv4ll3ULk,35875
jinja2/runtime.py,sha256=DHdD38Pq8gj7uWQC5usJyWFoNWL317A9AvXOW_CLB34,27755
jinja2/sandbox.py,sha256=TVyZHlNqqTzsv9fv2NvJNmSdWRHTguhyMHdxjWms32U,16708
jinja2/tests.py,sha256=iJQLwbapZr-EKquTG_fVOVdwHUUKf3SX9eNkjQDF8oU,4237
jinja2/utils.py,sha256=q24VupGZotQ-uOyrJxCaXtDWhZC1RgsQG7kcdmjck2Q,20629
jinja2/visitor.py,sha256=JD1H1cANA29JcntFfN5fPyqQxB4bI4wC00BzZa-XHks,3316
Jinja2-2.10.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
jinja2/__pycache__/asyncfilters.cpython-36.pyc,,
jinja2/__pycache__/asyncsupport.cpython-36.pyc,,
jinja2/__pycache__/bccache.cpython-36.pyc,,
jinja2/__pycache__/compiler.cpython-36.pyc,,
jinja2/__pycache__/constants.cpython-36.pyc,,
jinja2/__pycache__/debug.cpython-36.pyc,,
jinja2/__pycache__/defaults.cpython-36.pyc,,
jinja2/__pycache__/environment.cpython-36.pyc,,
jinja2/__pycache__/exceptions.cpython-36.pyc,,
jinja2/__pycache__/ext.cpython-36.pyc,,
jinja2/__pycache__/filters.cpython-36.pyc,,
jinja2/__pycache__/idtracking.cpython-36.pyc,,
jinja2/__pycache__/lexer.cpython-36.pyc,,
jinja2/__pycache__/loaders.cpython-36.pyc,,
jinja2/__pycache__/meta.cpython-36.pyc,,
jinja2/__pycache__/nativetypes.cpython-36.pyc,,
jinja2/__pycache__/nodes.cpython-36.pyc,,
jinja2/__pycache__/optimizer.cpython-36.pyc,,
jinja2/__pycache__/parser.cpython-36.pyc,,
jinja2/__pycache__/runtime.cpython-36.pyc,,
jinja2/__pycache__/sandbox.cpython-36.pyc,,
jinja2/__pycache__/tests.cpython-36.pyc,,
jinja2/__pycache__/utils.cpython-36.pyc,,
jinja2/__pycache__/visitor.cpython-36.pyc,,
jinja2/__pycache__/_compat.cpython-36.pyc,,
jinja2/__pycache__/_identifier.cpython-36.pyc,,
jinja2/__pycache__/__init__.cpython-36.pyc,,

@ -0,0 +1,6 @@
Wheel-Version: 1.0
Generator: bdist_wheel (0.30.0)
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any

@ -0,0 +1,4 @@
[babel.extractors]
jinja2 = jinja2.ext:babel_extract[i18n]

@ -0,0 +1 @@
{"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup :: HTML"], "description_content_type": "UNKNOWN", "extensions": {"python.details": {"contacts": [{"email": "armin.ronacher@active-4.com", "name": "Armin Ronacher", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "project_urls": {"Home": "http://jinja.pocoo.org/"}}, "python.exports": {"babel.extractors": {"jinja2": "jinja2.ext:babel_extract [i18n]"}}}, "extras": ["i18n"], "generator": "bdist_wheel (0.30.0)", "license": "BSD", "metadata_version": "2.0", "name": "Jinja2", "run_requires": [{"extra": "i18n", "requires": ["Babel (>=0.8)"]}, {"requires": ["MarkupSafe (>=0.23)"]}], "summary": "A small but fast and easy to use stand-alone template engine written in pure python.", "version": "2.10"}

@ -0,0 +1,28 @@
Copyright 2010 Pallets
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

@ -0,0 +1,103 @@
Metadata-Version: 2.1
Name: MarkupSafe
Version: 1.1.1
Summary: Safely add untrusted strings to HTML/XML markup.
Home-page: https://palletsprojects.com/p/markupsafe/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
Maintainer: The Pallets Team
Maintainer-email: contact@palletsprojects.com
License: BSD-3-Clause
Project-URL: Documentation, https://markupsafe.palletsprojects.com/
Project-URL: Code, https://github.com/pallets/markupsafe
Project-URL: Issue tracker, https://github.com/pallets/markupsafe/issues
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup :: HTML
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*
MarkupSafe
==========
MarkupSafe implements a text object that escapes characters so it is
safe to use in HTML and XML. Characters that have special meanings are
replaced so that they display as the actual characters. This mitigates
injection attacks, meaning untrusted user input can safely be displayed
on a page.
Installing
----------
Install and update using `pip`_:
.. code-block:: text
pip install -U MarkupSafe
.. _pip: https://pip.pypa.io/en/stable/quickstart/
Examples
--------
.. code-block:: pycon
>>> from markupsafe import Markup, escape
>>> # escape replaces special characters and wraps in Markup
>>> escape('<script>alert(document.cookie);</script>')
Markup(u'&lt;script&gt;alert(document.cookie);&lt;/script&gt;')
>>> # wrap in Markup to mark text "safe" and prevent escaping
>>> Markup('<strong>Hello</strong>')
Markup('<strong>hello</strong>')
>>> escape(Markup('<strong>Hello</strong>'))
Markup('<strong>hello</strong>')
>>> # Markup is a text subclass (str on Python 3, unicode on Python 2)
>>> # methods and operators escape their arguments
>>> template = Markup("Hello <em>%s</em>")
>>> template % '"World"'
Markup('Hello <em>&#34;World&#34;</em>')
Donate
------
The Pallets organization develops and supports MarkupSafe and other
libraries that use it. In order to grow the community of contributors
and users, and allow the maintainers to devote more time to the
projects, `please donate today`_.
.. _please donate today: https://palletsprojects.com/donate
Links
-----
* Website: https://palletsprojects.com/p/markupsafe/
* Documentation: https://markupsafe.palletsprojects.com/
* License: `BSD-3-Clause <https://github.com/pallets/markupsafe/blob/master/LICENSE.rst>`_
* Releases: https://pypi.org/project/MarkupSafe/
* Code: https://github.com/pallets/markupsafe
* Issue tracker: https://github.com/pallets/markupsafe/issues
* Test status:
* Linux, Mac: https://travis-ci.org/pallets/markupsafe
* Windows: https://ci.appveyor.com/project/pallets/markupsafe
* Test coverage: https://codecov.io/gh/pallets/markupsafe

@ -0,0 +1,15 @@
markupsafe/__init__.py,sha256=oTblO5f9KFM-pvnq9bB0HgElnqkJyqHnFN1Nx2NIvnY,10126
markupsafe/_compat.py,sha256=uEW1ybxEjfxIiuTbRRaJpHsPFf4yQUMMKaPgYEC5XbU,558
markupsafe/_constants.py,sha256=zo2ajfScG-l1Sb_52EP3MlDCqO7Y1BVHUXXKRsVDRNk,4690
markupsafe/_native.py,sha256=d-8S_zzYt2y512xYcuSxq0NeG2DUUvG80wVdTn-4KI8,1873
markupsafe/_speedups.cp36-win_amd64.pyd,sha256=Ue4uCEugw6UPHGtOAT8tqPDfeY0T4zRp6dgSG-1CEDo,15360
MarkupSafe-1.1.1.dist-info/LICENSE.rst,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475
MarkupSafe-1.1.1.dist-info/METADATA,sha256=nJHwJ4_4ka-V39QH883jPrslj6inNdyyNASBXbYgHXQ,3570
MarkupSafe-1.1.1.dist-info/WHEEL,sha256=1b1CGTcUmCiwm5ijwFxEsvudoBmSYVFVLf6KbgC4Sbk,106
MarkupSafe-1.1.1.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11
MarkupSafe-1.1.1.dist-info/RECORD,,
MarkupSafe-1.1.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
markupsafe/__pycache__/_compat.cpython-36.pyc,,
markupsafe/__pycache__/_constants.cpython-36.pyc,,
markupsafe/__pycache__/_native.cpython-36.pyc,,
markupsafe/__pycache__/__init__.cpython-36.pyc,,

@ -0,0 +1,5 @@
Wheel-Version: 1.0
Generator: bdist_wheel (0.33.1)
Root-Is-Purelib: false
Tag: cp36-cp36m-win_amd64

@ -0,0 +1,19 @@
Copyright (c) 2010, 2013 PyMySQL contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

@ -0,0 +1,181 @@
Metadata-Version: 2.1
Name: PyMySQL
Version: 0.9.3
Summary: Pure Python MySQL Driver
Home-page: https://github.com/PyMySQL/PyMySQL/
Author: yutaka.matsubara
Author-email: yutaka.matsubara@gmail.com
Maintainer: INADA Naoki
Maintainer-email: songofacandy@gmail.com
License: "MIT"
Project-URL: Documentation, https://pymysql.readthedocs.io/
Keywords: MySQL
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Database
Provides-Extra: rsa
Requires-Dist: cryptography ; extra == 'rsa'
.. image:: https://readthedocs.org/projects/pymysql/badge/?version=latest
:target: https://pymysql.readthedocs.io/
:alt: Documentation Status
.. image:: https://badge.fury.io/py/PyMySQL.svg
:target: https://badge.fury.io/py/PyMySQL
.. image:: https://travis-ci.org/PyMySQL/PyMySQL.svg?branch=master
:target: https://travis-ci.org/PyMySQL/PyMySQL
.. image:: https://coveralls.io/repos/PyMySQL/PyMySQL/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/PyMySQL/PyMySQL?branch=master
.. image:: https://img.shields.io/badge/license-MIT-blue.svg
:target: https://github.com/PyMySQL/PyMySQL/blob/master/LICENSE
PyMySQL
=======
.. contents:: Table of Contents
:local:
This package contains a pure-Python MySQL client library, based on `PEP 249`_.
Most public APIs are compatible with mysqlclient and MySQLdb.
NOTE: PyMySQL doesn't support low level APIs `_mysql` provides like `data_seek`,
`store_result`, and `use_result`. You should use high level APIs defined in `PEP 249`_.
But some APIs like `autocommit` and `ping` are supported because `PEP 249`_ doesn't cover
their usecase.
.. _`PEP 249`: https://www.python.org/dev/peps/pep-0249/
Requirements
-------------
* Python -- one of the following:
- CPython_ : 2.7 and >= 3.4
- PyPy_ : Latest version
* MySQL Server -- one of the following:
- MySQL_ >= 5.5
- MariaDB_ >= 5.5
.. _CPython: https://www.python.org/
.. _PyPy: https://pypy.org/
.. _MySQL: https://www.mysql.com/
.. _MariaDB: https://mariadb.org/
Installation
------------
Package is uploaded on `PyPI <https://pypi.org/project/PyMySQL>`_.
You can install it with pip::
$ python3 -m pip install PyMySQL
To use "sha256_password" or "caching_sha2_password" for authenticate,
you need to install additional dependency::
$ python3 -m pip install PyMySQL[rsa]
Documentation
-------------
Documentation is available online: https://pymysql.readthedocs.io/
For support, please refer to the `StackOverflow
<https://stackoverflow.com/questions/tagged/pymysql>`_.
Example
-------
The following examples make use of a simple table
.. code:: sql
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(255) COLLATE utf8_bin NOT NULL,
`password` varchar(255) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
AUTO_INCREMENT=1 ;
.. code:: python
import pymysql.cursors
# Connect to the database
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
db='db',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
# connection is not autocommit by default. So you must commit to save
# your changes.
connection.commit()
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
cursor.execute(sql, ('webmaster@python.org',))
result = cursor.fetchone()
print(result)
finally:
connection.close()
This example will print:
.. code:: python
{'password': 'very-secret', 'id': 1}
Resources
---------
* DB-API 2.0: https://www.python.org/dev/peps/pep-0249/
* MySQL Reference Manuals: https://dev.mysql.com/doc/
* MySQL client/server protocol:
https://dev.mysql.com/doc/internals/en/client-server-protocol.html
* "Connector" channel in MySQL Community Slack:
https://lefred.be/mysql-community-on-slack/
* PyMySQL mailing list: https://groups.google.com/forum/#!forum/pymysql-users
License
-------
PyMySQL is released under the MIT License. See LICENSE for more information.

@ -0,0 +1,49 @@
pymysql/__init__.py,sha256=ESllVZVoMVkJ0w9FoaMMirjFbWNc6wmHEVHzGKEBefc,4732
pymysql/_auth.py,sha256=X2AiuevuDaD2L4wJO5J7rymvJJZm6mND7WYmeIb7wEk,7720
pymysql/_compat.py,sha256=DSxMV2ib-rhIuQIKiXX44yds_0bN2M_RddfYQiSdB6U,481
pymysql/_socketio.py,sha256=smsw4wudNM4CKl85uis8QHfjDhz2iXQRvl8QV4TmB1w,4049
pymysql/charset.py,sha256=tNeEkuzFXM5zeuOYm_XSM8zdt5P_paV2SyUB9B2ibqI,10330
pymysql/connections.py,sha256=98DHxN-h3tupGBIReR98E7LSTR7-OIYh3tulXGlGdvc,49041
pymysql/converters.py,sha256=BWHMbquNFUKfFXyZh6Qwch6mYLyYSQeaeifL4VLuISc,12235
pymysql/cursors.py,sha256=m6MhwWnm3CbTE4JAXzDuo6CYKC7W6JzsY4PN9eDmKJk,17238
pymysql/err.py,sha256=PaXGLqOnDXJoeYjLbMZQE5UQ3MHFqiiHCzaDPP-_NJA,3716
pymysql/optionfile.py,sha256=4yW8A7aAR2Aild7ibLOCzIlTCcYd90PtR8LRGJSZs8o,658
pymysql/protocol.py,sha256=GH2yzGqPwqX2t2G87k3EJQt7bYQOLEN6QoN_m15c4Ak,12024
pymysql/times.py,sha256=_qXgDaYwsHntvpIKSKXp1rrYIgtq6Z9pLyLnO2XNoL0,360
pymysql/util.py,sha256=jKPts8cOMIXDndjsV3783VW-iq9uMxETWqfHP6Bd-Zo,180
pymysql/constants/CLIENT.py,sha256=cPMxnQQbBG6xqaEDwqzggTfWIuJQ1Oy7HrIgw_vgpo4,853
pymysql/constants/COMMAND.py,sha256=ypGdEUmi8m9cdBZ3rDU6mb7bsIyu9ldCDvc4pNF7V70,680
pymysql/constants/CR.py,sha256=5ojVkbisyw7Qo_cTNpnHYvV6xHRZXK39Qqv8tjGbIbg,2228
pymysql/constants/ER.py,sha256=8q1PZOxezbXbRaPZrHrQebyLDx4CvAUkBArJ9xBuW0Y,12297
pymysql/constants/FIELD_TYPE.py,sha256=yHZLSyQewMxTDx4PLrI1H_iwH2FnsrgBZFa56UG2HiQ,372
pymysql/constants/FLAG.py,sha256=Fy-PrCLnUI7fx_o5WypYnUAzWAM0E9d5yL8fFRVKffY,214
pymysql/constants/SERVER_STATUS.py,sha256=KogVCOrV-S5aAFwyVKeKgua13nwdt1WFyHagjCZbcpM,334
pymysql/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
PyMySQL-0.9.3.dist-info/LICENSE,sha256=MUEg3GXwgA9ziksxQAx27hTezR--d86cNUCkIbhup7Y,1070
PyMySQL-0.9.3.dist-info/METADATA,sha256=8_R1N3H_AmpUu72ctuiQVI1Pk2SMlb9sy1uGlnxXB4U,5212
PyMySQL-0.9.3.dist-info/WHEEL,sha256=_wJFdOYk7i3xxT8ElOkUJvOdOvfNGbR9g-bf6UQT6sU,110
PyMySQL-0.9.3.dist-info/pbr.json,sha256=Lqvh8-9N7qS6SLUlEJ5GDLWioQcvR9n1WWjMEfJ5mv8,47
PyMySQL-0.9.3.dist-info/top_level.txt,sha256=IKlV-f4o90sOdnMd6HBvo0l2nqfJOGUzkwZeaEEGuRg,8
PyMySQL-0.9.3.dist-info/RECORD,,
PyMySQL-0.9.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
pymysql/constants/__pycache__/CLIENT.cpython-36.pyc,,
pymysql/constants/__pycache__/COMMAND.cpython-36.pyc,,
pymysql/constants/__pycache__/CR.cpython-36.pyc,,
pymysql/constants/__pycache__/ER.cpython-36.pyc,,
pymysql/constants/__pycache__/FIELD_TYPE.cpython-36.pyc,,
pymysql/constants/__pycache__/FLAG.cpython-36.pyc,,
pymysql/constants/__pycache__/SERVER_STATUS.cpython-36.pyc,,
pymysql/constants/__pycache__/__init__.cpython-36.pyc,,
pymysql/__pycache__/charset.cpython-36.pyc,,
pymysql/__pycache__/connections.cpython-36.pyc,,
pymysql/__pycache__/converters.cpython-36.pyc,,
pymysql/__pycache__/cursors.cpython-36.pyc,,
pymysql/__pycache__/err.cpython-36.pyc,,
pymysql/__pycache__/optionfile.cpython-36.pyc,,
pymysql/__pycache__/protocol.cpython-36.pyc,,
pymysql/__pycache__/times.cpython-36.pyc,,
pymysql/__pycache__/util.cpython-36.pyc,,
pymysql/__pycache__/_auth.cpython-36.pyc,,
pymysql/__pycache__/_compat.cpython-36.pyc,,
pymysql/__pycache__/_socketio.cpython-36.pyc,,
pymysql/__pycache__/__init__.cpython-36.pyc,,

@ -0,0 +1,6 @@
Wheel-Version: 1.0
Generator: bdist_wheel (0.32.3)
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any

@ -0,0 +1 @@
{"is_release": false, "git_version": "08bac52"}

@ -0,0 +1,179 @@
Metadata-Version: 2.1
Name: SQLAlchemy
Version: 1.3.0
Summary: Database Abstraction Library
Home-page: http://www.sqlalchemy.org
Author: Mike Bayer
Author-email: mike_mp@zzzcomputing.com
License: MIT License
Description: SQLAlchemy
==========
The Python SQL Toolkit and Object Relational Mapper
Introduction
-------------
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper
that gives application developers the full power and
flexibility of SQL. SQLAlchemy provides a full suite
of well known enterprise-level persistence patterns,
designed for efficient and high-performing database
access, adapted into a simple and Pythonic domain
language.
Major SQLAlchemy features include:
* An industrial strength ORM, built
from the core on the identity map, unit of work,
and data mapper patterns. These patterns
allow transparent persistence of objects
using a declarative configuration system.
Domain models
can be constructed and manipulated naturally,
and changes are synchronized with the
current transaction automatically.
* A relationally-oriented query system, exposing
the full range of SQL's capabilities
explicitly, including joins, subqueries,
correlation, and most everything else,
in terms of the object model.
Writing queries with the ORM uses the same
techniques of relational composition you use
when writing SQL. While you can drop into
literal SQL at any time, it's virtually never
needed.
* A comprehensive and flexible system
of eager loading for related collections and objects.
Collections are cached within a session,
and can be loaded on individual access, all
at once using joins, or by query per collection
across the full result set.
* A Core SQL construction system and DBAPI
interaction layer. The SQLAlchemy Core is
separate from the ORM and is a full database
abstraction layer in its own right, and includes
an extensible Python-based SQL expression
language, schema metadata, connection pooling,
type coercion, and custom types.
* All primary and foreign key constraints are
assumed to be composite and natural. Surrogate
integer primary keys are of course still the
norm, but SQLAlchemy never assumes or hardcodes
to this model.
* Database introspection and generation. Database
schemas can be "reflected" in one step into
Python structures representing database metadata;
those same structures can then generate
CREATE statements right back out - all within
the Core, independent of the ORM.
SQLAlchemy's philosophy:
* SQL databases behave less and less like object
collections the more size and performance start to
matter; object collections behave less and less like
tables and rows the more abstraction starts to matter.
SQLAlchemy aims to accommodate both of these
principles.
* An ORM doesn't need to hide the "R". A relational
database provides rich, set-based functionality
that should be fully exposed. SQLAlchemy's
ORM provides an open-ended set of patterns
that allow a developer to construct a custom
mediation layer between a domain model and
a relational schema, turning the so-called
"object relational impedance" issue into
a distant memory.
* The developer, in all cases, makes all decisions
regarding the design, structure, and naming conventions
of both the object model as well as the relational
schema. SQLAlchemy only provides the means
to automate the execution of these decisions.
* With SQLAlchemy, there's no such thing as
"the ORM generated a bad query" - you
retain full control over the structure of
queries, including how joins are organized,
how subqueries and correlation is used, what
columns are requested. Everything SQLAlchemy
does is ultimately the result of a developer-
initiated decision.
* Don't use an ORM if the problem doesn't need one.
SQLAlchemy consists of a Core and separate ORM
component. The Core offers a full SQL expression
language that allows Pythonic construction
of SQL constructs that render directly to SQL
strings for a target database, returning
result sets that are essentially enhanced DBAPI
cursors.
* Transactions should be the norm. With SQLAlchemy's
ORM, nothing goes to permanent storage until
commit() is called. SQLAlchemy encourages applications
to create a consistent means of delineating
the start and end of a series of operations.
* Never render a literal value in a SQL statement.
Bound parameters are used to the greatest degree
possible, allowing query optimizers to cache
query plans effectively and making SQL injection
attacks a non-issue.
Documentation
-------------
Latest documentation is at:
http://www.sqlalchemy.org/docs/
Installation / Requirements
---------------------------
Full documentation for installation is at
`Installation <http://www.sqlalchemy.org/docs/intro.html#installation>`_.
Getting Help / Development / Bug reporting
------------------------------------------
Please refer to the `SQLAlchemy Community Guide <http://www.sqlalchemy.org/support.html>`_.
Code of Conduct
---------------
Above all, SQLAlchemy places great emphasis on polite, thoughtful, and
constructive communication between users and developers.
Please see our current Code of Conduct at
`Code of Conduct <http://www.sqlalchemy.org/codeofconduct.html>`_.
License
-------
SQLAlchemy is distributed under the `MIT license
<http://www.opensource.org/licenses/mit-license.php>`_.
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Database :: Front-Ends
Classifier: Operating System :: OS Independent
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Provides-Extra: postgresql
Provides-Extra: oracle
Provides-Extra: postgresql_psycopg2cffi
Provides-Extra: pymysql
Provides-Extra: postgresql_psycopg2binary
Provides-Extra: mssql_pymssql
Provides-Extra: mssql_pyodbc
Provides-Extra: mssql
Provides-Extra: postgresql_pg8000
Provides-Extra: mysql

@ -0,0 +1,853 @@
AUTHORS
CHANGES
LICENSE
MANIFEST.in
README.dialects.rst
README.rst
README.unittests.rst
setup.cfg
setup.py
tox.ini
doc/contents.html
doc/copyright.html
doc/errors.html
doc/genindex.html
doc/glossary.html
doc/index.html
doc/intro.html
doc/notfound.html
doc/search.html
doc/searchindex.js
doc/_images/sqla_arch_small.png
doc/_images/sqla_engine_arch.png
doc/_modules/index.html
doc/_modules/examples/adjacency_list/adjacency_list.html
doc/_modules/examples/association/basic_association.html
doc/_modules/examples/association/dict_of_sets_with_default.html
doc/_modules/examples/association/proxied_association.html
doc/_modules/examples/custom_attributes/active_column_defaults.html
doc/_modules/examples/custom_attributes/custom_management.html
doc/_modules/examples/custom_attributes/listen_for_events.html
doc/_modules/examples/dogpile_caching/advanced.html
doc/_modules/examples/dogpile_caching/caching_query.html
doc/_modules/examples/dogpile_caching/environment.html
doc/_modules/examples/dogpile_caching/fixture_data.html
doc/_modules/examples/dogpile_caching/helloworld.html
doc/_modules/examples/dogpile_caching/local_session_caching.html
doc/_modules/examples/dogpile_caching/model.html
doc/_modules/examples/dogpile_caching/relationship_caching.html
doc/_modules/examples/dynamic_dict/dynamic_dict.html
doc/_modules/examples/elementtree/adjacency_list.html
doc/_modules/examples/elementtree/optimized_al.html
doc/_modules/examples/elementtree/pickle_type.html
doc/_modules/examples/generic_associations/discriminator_on_association.html
doc/_modules/examples/generic_associations/generic_fk.html
doc/_modules/examples/generic_associations/table_per_association.html
doc/_modules/examples/generic_associations/table_per_related.html
doc/_modules/examples/graphs/directed_graph.html
doc/_modules/examples/inheritance/concrete.html
doc/_modules/examples/inheritance/joined.html
doc/_modules/examples/inheritance/single.html
doc/_modules/examples/join_conditions/cast.html
doc/_modules/examples/join_conditions/threeway.html
doc/_modules/examples/large_collection/large_collection.html
doc/_modules/examples/materialized_paths/materialized_paths.html
doc/_modules/examples/nested_sets/nested_sets.html
doc/_modules/examples/performance/__main__.html
doc/_modules/examples/performance/bulk_inserts.html
doc/_modules/examples/performance/bulk_updates.html
doc/_modules/examples/performance/large_resultsets.html
doc/_modules/examples/performance/short_selects.html
doc/_modules/examples/performance/single_inserts.html
doc/_modules/examples/postgis/postgis.html
doc/_modules/examples/sharding/attribute_shard.html
doc/_modules/examples/space_invaders/space_invaders.html
doc/_modules/examples/versioned_history/history_meta.html
doc/_modules/examples/versioned_history/test_versioning.html
doc/_modules/examples/versioned_rows/versioned_map.html
doc/_modules/examples/versioned_rows/versioned_rows.html
doc/_modules/examples/versioned_rows/versioned_rows_w_versionid.html
doc/_modules/examples/versioned_rows/versioned_update_old_row.html
doc/_modules/examples/vertical/dictlike-polymorphic.html
doc/_modules/examples/vertical/dictlike.html
doc/_static/basic.css
doc/_static/changelog.css
doc/_static/comment-bright.png
doc/_static/comment-close.png
doc/_static/comment.png
doc/_static/detectmobile.js
doc/_static/docs.css
doc/_static/doctools.js
doc/_static/documentation_options.js
doc/_static/down-pressed.png
doc/_static/down.png
doc/_static/dragons.png
doc/_static/file.png
doc/_static/init.js
doc/_static/jquery-3.2.1.js
doc/_static/jquery.js
doc/_static/language_data.js
doc/_static/minus.png
doc/_static/plus.png
doc/_static/pygments.css
doc/_static/searchtools.js
doc/_static/sphinx_paramlinks.css
doc/_static/underscore-1.3.1.js
doc/_static/underscore.js
doc/_static/up-pressed.png
doc/_static/up.png
doc/_static/websupport.js
doc/build/Makefile
doc/build/conf.py
doc/build/contents.rst
doc/build/copyright.rst
doc/build/corrections.py
doc/build/errors.rst
doc/build/glossary.rst
doc/build/index.rst
doc/build/intro.rst
doc/build/requirements.txt
doc/build/sqla_arch_small.png
doc/build/changelog/changelog_01.rst
doc/build/changelog/changelog_02.rst
doc/build/changelog/changelog_03.rst
doc/build/changelog/changelog_04.rst
doc/build/changelog/changelog_05.rst
doc/build/changelog/changelog_06.rst
doc/build/changelog/changelog_07.rst
doc/build/changelog/changelog_08.rst
doc/build/changelog/changelog_09.rst
doc/build/changelog/changelog_10.rst
doc/build/changelog/changelog_11.rst
doc/build/changelog/changelog_12.rst
doc/build/changelog/changelog_13.rst
doc/build/changelog/index.rst
doc/build/changelog/migration_04.rst
doc/build/changelog/migration_05.rst
doc/build/changelog/migration_06.rst
doc/build/changelog/migration_07.rst
doc/build/changelog/migration_08.rst
doc/build/changelog/migration_09.rst
doc/build/changelog/migration_10.rst
doc/build/changelog/migration_11.rst
doc/build/changelog/migration_12.rst
doc/build/changelog/migration_13.rst
doc/build/changelog/unreleased_10/4065.rst
doc/build/changelog/unreleased_10/README.txt
doc/build/changelog/unreleased_11/README.txt
doc/build/changelog/unreleased_12/4406.rst
doc/build/changelog/unreleased_12/4506.rst
doc/build/changelog/unreleased_12/4507.rst
doc/build/changelog/unreleased_12/README.txt
doc/build/changelog/unreleased_13/README.txt
doc/build/core/api_basics.rst
doc/build/core/compiler.rst
doc/build/core/connections.rst
doc/build/core/constraints.rst
doc/build/core/custom_types.rst
doc/build/core/ddl.rst
doc/build/core/defaults.rst
doc/build/core/dml.rst
doc/build/core/engines.rst
doc/build/core/engines_connections.rst
doc/build/core/event.rst
doc/build/core/events.rst
doc/build/core/exceptions.rst
doc/build/core/expression_api.rst
doc/build/core/functions.rst
doc/build/core/index.rst
doc/build/core/inspection.rst
doc/build/core/interfaces.rst
doc/build/core/internals.rst
doc/build/core/metadata.rst
doc/build/core/pooling.rst
doc/build/core/reflection.rst
doc/build/core/schema.rst
doc/build/core/selectable.rst
doc/build/core/serializer.rst
doc/build/core/sqla_engine_arch.png
doc/build/core/sqlelement.rst
doc/build/core/tutorial.rst
doc/build/core/type_api.rst
doc/build/core/type_basics.rst
doc/build/core/types.rst
doc/build/dialects/firebird.rst
doc/build/dialects/index.rst
doc/build/dialects/mssql.rst
doc/build/dialects/mysql.rst
doc/build/dialects/oracle.rst
doc/build/dialects/postgresql.rst
doc/build/dialects/sqlite.rst
doc/build/dialects/sybase.rst
doc/build/faq/connections.rst
doc/build/faq/index.rst
doc/build/faq/metadata_schema.rst
doc/build/faq/ormconfiguration.rst
doc/build/faq/performance.rst
doc/build/faq/sessions.rst
doc/build/faq/sqlexpressions.rst
doc/build/orm/backref.rst
doc/build/orm/basic_relationships.rst
doc/build/orm/cascades.rst
doc/build/orm/classical.rst
doc/build/orm/collections.rst
doc/build/orm/composites.rst
doc/build/orm/constructors.rst
doc/build/orm/contextual.rst
doc/build/orm/deprecated.rst
doc/build/orm/events.rst
doc/build/orm/examples.rst
doc/build/orm/exceptions.rst
doc/build/orm/extending.rst
doc/build/orm/index.rst
doc/build/orm/inheritance.rst
doc/build/orm/inheritance_loading.rst
doc/build/orm/internals.rst
doc/build/orm/join_conditions.rst
doc/build/orm/loading.rst
doc/build/orm/loading_columns.rst
doc/build/orm/loading_objects.rst
doc/build/orm/loading_relationships.rst
doc/build/orm/mapped_attributes.rst
doc/build/orm/mapped_sql_expr.rst
doc/build/orm/mapper_config.rst
doc/build/orm/mapping_api.rst
doc/build/orm/mapping_columns.rst
doc/build/orm/mapping_styles.rst
doc/build/orm/nonstandard_mappings.rst
doc/build/orm/persistence_techniques.rst
doc/build/orm/query.rst
doc/build/orm/relationship_api.rst
doc/build/orm/relationship_persistence.rst
doc/build/orm/relationships.rst
doc/build/orm/scalar_mapping.rst
doc/build/orm/self_referential.rst
doc/build/orm/session.rst
doc/build/orm/session_api.rst
doc/build/orm/session_basics.rst
doc/build/orm/session_events.rst
doc/build/orm/session_state_management.rst
doc/build/orm/session_transaction.rst
doc/build/orm/tutorial.rst
doc/build/orm/versioning.rst
doc/build/orm/extensions/associationproxy.rst
doc/build/orm/extensions/automap.rst
doc/build/orm/extensions/baked.rst
doc/build/orm/extensions/horizontal_shard.rst
doc/build/orm/extensions/hybrid.rst
doc/build/orm/extensions/index.rst
doc/build/orm/extensions/indexable.rst
doc/build/orm/extensions/instrumentation.rst
doc/build/orm/extensions/mutable.rst
doc/build/orm/extensions/orderinglist.rst
doc/build/orm/extensions/declarative/api.rst
doc/build/orm/extensions/declarative/basic_use.rst
doc/build/orm/extensions/declarative/index.rst
doc/build/orm/extensions/declarative/inheritance.rst
doc/build/orm/extensions/declarative/mixins.rst
doc/build/orm/extensions/declarative/relationships.rst
doc/build/orm/extensions/declarative/table_config.rst
doc/build/texinputs/Makefile
doc/build/texinputs/sphinx.sty
doc/changelog/changelog_01.html
doc/changelog/changelog_02.html
doc/changelog/changelog_03.html
doc/changelog/changelog_04.html
doc/changelog/changelog_05.html
doc/changelog/changelog_06.html
doc/changelog/changelog_07.html
doc/changelog/changelog_08.html
doc/changelog/changelog_09.html
doc/changelog/changelog_10.html
doc/changelog/changelog_11.html
doc/changelog/changelog_12.html
doc/changelog/changelog_13.html
doc/changelog/index.html
doc/changelog/migration_04.html
doc/changelog/migration_05.html
doc/changelog/migration_06.html
doc/changelog/migration_07.html
doc/changelog/migration_08.html
doc/changelog/migration_09.html
doc/changelog/migration_10.html
doc/changelog/migration_11.html
doc/changelog/migration_12.html
doc/changelog/migration_13.html
doc/core/api_basics.html
doc/core/compiler.html
doc/core/connections.html
doc/core/constraints.html
doc/core/custom_types.html
doc/core/ddl.html
doc/core/defaults.html
doc/core/dml.html
doc/core/engines.html
doc/core/engines_connections.html
doc/core/event.html
doc/core/events.html
doc/core/exceptions.html
doc/core/expression_api.html
doc/core/functions.html
doc/core/index.html
doc/core/inspection.html
doc/core/interfaces.html
doc/core/internals.html
doc/core/metadata.html
doc/core/pooling.html
doc/core/reflection.html
doc/core/schema.html
doc/core/selectable.html
doc/core/serializer.html
doc/core/sqlelement.html
doc/core/tutorial.html
doc/core/type_api.html
doc/core/type_basics.html
doc/core/types.html
doc/dialects/firebird.html
doc/dialects/index.html
doc/dialects/mssql.html
doc/dialects/mysql.html
doc/dialects/oracle.html
doc/dialects/postgresql.html
doc/dialects/sqlite.html
doc/dialects/sybase.html
doc/faq/connections.html
doc/faq/index.html
doc/faq/metadata_schema.html
doc/faq/ormconfiguration.html
doc/faq/performance.html
doc/faq/sessions.html
doc/faq/sqlexpressions.html
doc/orm/backref.html
doc/orm/basic_relationships.html
doc/orm/cascades.html
doc/orm/classical.html
doc/orm/collections.html
doc/orm/composites.html
doc/orm/constructors.html
doc/orm/contextual.html
doc/orm/deprecated.html
doc/orm/events.html
doc/orm/examples.html
doc/orm/exceptions.html
doc/orm/extending.html
doc/orm/index.html
doc/orm/inheritance.html
doc/orm/inheritance_loading.html
doc/orm/internals.html
doc/orm/join_conditions.html
doc/orm/loading.html
doc/orm/loading_columns.html
doc/orm/loading_objects.html
doc/orm/loading_relationships.html
doc/orm/mapped_attributes.html
doc/orm/mapped_sql_expr.html
doc/orm/mapper_config.html
doc/orm/mapping_api.html
doc/orm/mapping_columns.html
doc/orm/mapping_styles.html
doc/orm/nonstandard_mappings.html
doc/orm/persistence_techniques.html
doc/orm/query.html
doc/orm/relationship_api.html
doc/orm/relationship_persistence.html
doc/orm/relationships.html
doc/orm/scalar_mapping.html
doc/orm/self_referential.html
doc/orm/session.html
doc/orm/session_api.html
doc/orm/session_basics.html
doc/orm/session_events.html
doc/orm/session_state_management.html
doc/orm/session_transaction.html
doc/orm/tutorial.html
doc/orm/versioning.html
doc/orm/extensions/associationproxy.html
doc/orm/extensions/automap.html
doc/orm/extensions/baked.html
doc/orm/extensions/horizontal_shard.html
doc/orm/extensions/hybrid.html
doc/orm/extensions/index.html
doc/orm/extensions/indexable.html
doc/orm/extensions/instrumentation.html
doc/orm/extensions/mutable.html
doc/orm/extensions/orderinglist.html
doc/orm/extensions/declarative/api.html
doc/orm/extensions/declarative/basic_use.html
doc/orm/extensions/declarative/index.html
doc/orm/extensions/declarative/inheritance.html
doc/orm/extensions/declarative/mixins.html
doc/orm/extensions/declarative/relationships.html
doc/orm/extensions/declarative/table_config.html
examples/__init__.py
examples/adjacency_list/__init__.py
examples/adjacency_list/adjacency_list.py
examples/association/__init__.py
examples/association/basic_association.py
examples/association/dict_of_sets_with_default.py
examples/association/proxied_association.py
examples/custom_attributes/__init__.py
examples/custom_attributes/active_column_defaults.py
examples/custom_attributes/custom_management.py
examples/custom_attributes/listen_for_events.py
examples/dogpile_caching/__init__.py
examples/dogpile_caching/advanced.py
examples/dogpile_caching/caching_query.py
examples/dogpile_caching/environment.py
examples/dogpile_caching/fixture_data.py
examples/dogpile_caching/helloworld.py
examples/dogpile_caching/local_session_caching.py
examples/dogpile_caching/model.py
examples/dogpile_caching/relationship_caching.py
examples/dynamic_dict/__init__.py
examples/dynamic_dict/dynamic_dict.py
examples/elementtree/__init__.py
examples/elementtree/adjacency_list.py
examples/elementtree/optimized_al.py
examples/elementtree/pickle_type.py
examples/elementtree/test.xml
examples/elementtree/test2.xml
examples/elementtree/test3.xml
examples/generic_associations/__init__.py
examples/generic_associations/discriminator_on_association.py
examples/generic_associations/generic_fk.py
examples/generic_associations/table_per_association.py
examples/generic_associations/table_per_related.py
examples/graphs/__init__.py
examples/graphs/directed_graph.py
examples/inheritance/__init__.py
examples/inheritance/concrete.py
examples/inheritance/joined.py
examples/inheritance/single.py
examples/join_conditions/__init__.py
examples/join_conditions/cast.py
examples/join_conditions/threeway.py
examples/large_collection/__init__.py
examples/large_collection/large_collection.py
examples/materialized_paths/__init__.py
examples/materialized_paths/materialized_paths.py
examples/nested_sets/__init__.py
examples/nested_sets/nested_sets.py
examples/performance/__init__.py
examples/performance/__main__.py
examples/performance/bulk_inserts.py
examples/performance/bulk_updates.py
examples/performance/large_resultsets.py
examples/performance/short_selects.py
examples/performance/single_inserts.py
examples/postgis/__init__.py
examples/postgis/postgis.py
examples/sharding/__init__.py
examples/sharding/attribute_shard.py
examples/space_invaders/__init__.py
examples/space_invaders/space_invaders.py
examples/versioned_history/__init__.py
examples/versioned_history/history_meta.py
examples/versioned_history/test_versioning.py
examples/versioned_rows/__init__.py
examples/versioned_rows/versioned_map.py
examples/versioned_rows/versioned_rows.py
examples/versioned_rows/versioned_rows_w_versionid.py
examples/versioned_rows/versioned_update_old_row.py
examples/vertical/__init__.py
examples/vertical/dictlike-polymorphic.py
examples/vertical/dictlike.py
lib/SQLAlchemy.egg-info/PKG-INFO
lib/SQLAlchemy.egg-info/SOURCES.txt
lib/SQLAlchemy.egg-info/dependency_links.txt
lib/SQLAlchemy.egg-info/requires.txt
lib/SQLAlchemy.egg-info/top_level.txt
lib/sqlalchemy/__init__.py
lib/sqlalchemy/events.py
lib/sqlalchemy/exc.py
lib/sqlalchemy/inspection.py
lib/sqlalchemy/interfaces.py
lib/sqlalchemy/log.py
lib/sqlalchemy/processors.py
lib/sqlalchemy/schema.py
lib/sqlalchemy/types.py
lib/sqlalchemy/cextension/processors.c
lib/sqlalchemy/cextension/resultproxy.c
lib/sqlalchemy/cextension/utils.c
lib/sqlalchemy/connectors/__init__.py
lib/sqlalchemy/connectors/mxodbc.py
lib/sqlalchemy/connectors/pyodbc.py
lib/sqlalchemy/connectors/zxJDBC.py
lib/sqlalchemy/databases/__init__.py
lib/sqlalchemy/dialects/__init__.py
lib/sqlalchemy/dialects/type_migration_guidelines.txt
lib/sqlalchemy/dialects/firebird/__init__.py
lib/sqlalchemy/dialects/firebird/base.py
lib/sqlalchemy/dialects/firebird/fdb.py
lib/sqlalchemy/dialects/firebird/kinterbasdb.py
lib/sqlalchemy/dialects/mssql/__init__.py
lib/sqlalchemy/dialects/mssql/adodbapi.py
lib/sqlalchemy/dialects/mssql/base.py
lib/sqlalchemy/dialects/mssql/information_schema.py
lib/sqlalchemy/dialects/mssql/mxodbc.py
lib/sqlalchemy/dialects/mssql/pymssql.py
lib/sqlalchemy/dialects/mssql/pyodbc.py
lib/sqlalchemy/dialects/mssql/zxjdbc.py
lib/sqlalchemy/dialects/mysql/__init__.py
lib/sqlalchemy/dialects/mysql/base.py
lib/sqlalchemy/dialects/mysql/cymysql.py
lib/sqlalchemy/dialects/mysql/dml.py
lib/sqlalchemy/dialects/mysql/enumerated.py
lib/sqlalchemy/dialects/mysql/gaerdbms.py
lib/sqlalchemy/dialects/mysql/json.py
lib/sqlalchemy/dialects/mysql/mysqlconnector.py
lib/sqlalchemy/dialects/mysql/mysqldb.py
lib/sqlalchemy/dialects/mysql/oursql.py
lib/sqlalchemy/dialects/mysql/pymysql.py
lib/sqlalchemy/dialects/mysql/pyodbc.py
lib/sqlalchemy/dialects/mysql/reflection.py
lib/sqlalchemy/dialects/mysql/types.py
lib/sqlalchemy/dialects/mysql/zxjdbc.py
lib/sqlalchemy/dialects/oracle/__init__.py
lib/sqlalchemy/dialects/oracle/base.py
lib/sqlalchemy/dialects/oracle/cx_oracle.py
lib/sqlalchemy/dialects/oracle/zxjdbc.py
lib/sqlalchemy/dialects/postgresql/__init__.py
lib/sqlalchemy/dialects/postgresql/array.py
lib/sqlalchemy/dialects/postgresql/base.py
lib/sqlalchemy/dialects/postgresql/dml.py
lib/sqlalchemy/dialects/postgresql/ext.py
lib/sqlalchemy/dialects/postgresql/hstore.py
lib/sqlalchemy/dialects/postgresql/json.py
lib/sqlalchemy/dialects/postgresql/pg8000.py
lib/sqlalchemy/dialects/postgresql/psycopg2.py
lib/sqlalchemy/dialects/postgresql/psycopg2cffi.py
lib/sqlalchemy/dialects/postgresql/pygresql.py
lib/sqlalchemy/dialects/postgresql/pypostgresql.py
lib/sqlalchemy/dialects/postgresql/ranges.py
lib/sqlalchemy/dialects/postgresql/zxjdbc.py
lib/sqlalchemy/dialects/sqlite/__init__.py
lib/sqlalchemy/dialects/sqlite/base.py
lib/sqlalchemy/dialects/sqlite/json.py
lib/sqlalchemy/dialects/sqlite/pysqlcipher.py
lib/sqlalchemy/dialects/sqlite/pysqlite.py
lib/sqlalchemy/dialects/sybase/__init__.py
lib/sqlalchemy/dialects/sybase/base.py
lib/sqlalchemy/dialects/sybase/mxodbc.py
lib/sqlalchemy/dialects/sybase/pyodbc.py
lib/sqlalchemy/dialects/sybase/pysybase.py
lib/sqlalchemy/engine/__init__.py
lib/sqlalchemy/engine/base.py
lib/sqlalchemy/engine/default.py
lib/sqlalchemy/engine/interfaces.py
lib/sqlalchemy/engine/reflection.py
lib/sqlalchemy/engine/result.py
lib/sqlalchemy/engine/strategies.py
lib/sqlalchemy/engine/threadlocal.py
lib/sqlalchemy/engine/url.py
lib/sqlalchemy/engine/util.py
lib/sqlalchemy/event/__init__.py
lib/sqlalchemy/event/api.py
lib/sqlalchemy/event/attr.py
lib/sqlalchemy/event/base.py
lib/sqlalchemy/event/legacy.py
lib/sqlalchemy/event/registry.py
lib/sqlalchemy/ext/__init__.py
lib/sqlalchemy/ext/associationproxy.py
lib/sqlalchemy/ext/automap.py
lib/sqlalchemy/ext/baked.py
lib/sqlalchemy/ext/compiler.py
lib/sqlalchemy/ext/horizontal_shard.py
lib/sqlalchemy/ext/hybrid.py
lib/sqlalchemy/ext/indexable.py
lib/sqlalchemy/ext/instrumentation.py
lib/sqlalchemy/ext/mutable.py
lib/sqlalchemy/ext/orderinglist.py
lib/sqlalchemy/ext/serializer.py
lib/sqlalchemy/ext/declarative/__init__.py
lib/sqlalchemy/ext/declarative/api.py
lib/sqlalchemy/ext/declarative/base.py
lib/sqlalchemy/ext/declarative/clsregistry.py
lib/sqlalchemy/orm/__init__.py
lib/sqlalchemy/orm/attributes.py
lib/sqlalchemy/orm/base.py
lib/sqlalchemy/orm/collections.py
lib/sqlalchemy/orm/dependency.py
lib/sqlalchemy/orm/deprecated_interfaces.py
lib/sqlalchemy/orm/descriptor_props.py
lib/sqlalchemy/orm/dynamic.py
lib/sqlalchemy/orm/evaluator.py
lib/sqlalchemy/orm/events.py
lib/sqlalchemy/orm/exc.py
lib/sqlalchemy/orm/identity.py
lib/sqlalchemy/orm/instrumentation.py
lib/sqlalchemy/orm/interfaces.py
lib/sqlalchemy/orm/loading.py
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/path_registry.py
lib/sqlalchemy/orm/persistence.py
lib/sqlalchemy/orm/properties.py
lib/sqlalchemy/orm/query.py
lib/sqlalchemy/orm/relationships.py
lib/sqlalchemy/orm/scoping.py
lib/sqlalchemy/orm/session.py
lib/sqlalchemy/orm/state.py
lib/sqlalchemy/orm/strategies.py
lib/sqlalchemy/orm/strategy_options.py
lib/sqlalchemy/orm/sync.py
lib/sqlalchemy/orm/unitofwork.py
lib/sqlalchemy/orm/util.py
lib/sqlalchemy/pool/__init__.py
lib/sqlalchemy/pool/base.py
lib/sqlalchemy/pool/dbapi_proxy.py
lib/sqlalchemy/pool/impl.py
lib/sqlalchemy/sql/__init__.py
lib/sqlalchemy/sql/annotation.py
lib/sqlalchemy/sql/base.py
lib/sqlalchemy/sql/compiler.py
lib/sqlalchemy/sql/crud.py
lib/sqlalchemy/sql/ddl.py
lib/sqlalchemy/sql/default_comparator.py
lib/sqlalchemy/sql/dml.py
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/sql/expression.py
lib/sqlalchemy/sql/functions.py
lib/sqlalchemy/sql/naming.py
lib/sqlalchemy/sql/operators.py
lib/sqlalchemy/sql/schema.py
lib/sqlalchemy/sql/selectable.py
lib/sqlalchemy/sql/sqltypes.py
lib/sqlalchemy/sql/type_api.py
lib/sqlalchemy/sql/util.py
lib/sqlalchemy/sql/visitors.py
lib/sqlalchemy/testing/__init__.py
lib/sqlalchemy/testing/assertions.py
lib/sqlalchemy/testing/assertsql.py
lib/sqlalchemy/testing/config.py
lib/sqlalchemy/testing/engines.py
lib/sqlalchemy/testing/entities.py
lib/sqlalchemy/testing/exclusions.py
lib/sqlalchemy/testing/fixtures.py
lib/sqlalchemy/testing/mock.py
lib/sqlalchemy/testing/pickleable.py
lib/sqlalchemy/testing/profiling.py
lib/sqlalchemy/testing/provision.py
lib/sqlalchemy/testing/replay_fixture.py
lib/sqlalchemy/testing/requirements.py
lib/sqlalchemy/testing/schema.py
lib/sqlalchemy/testing/util.py
lib/sqlalchemy/testing/warnings.py
lib/sqlalchemy/testing/plugin/__init__.py
lib/sqlalchemy/testing/plugin/bootstrap.py
lib/sqlalchemy/testing/plugin/plugin_base.py
lib/sqlalchemy/testing/plugin/pytestplugin.py
lib/sqlalchemy/testing/suite/__init__.py
lib/sqlalchemy/testing/suite/test_cte.py
lib/sqlalchemy/testing/suite/test_ddl.py
lib/sqlalchemy/testing/suite/test_dialect.py
lib/sqlalchemy/testing/suite/test_insert.py
lib/sqlalchemy/testing/suite/test_reflection.py
lib/sqlalchemy/testing/suite/test_results.py
lib/sqlalchemy/testing/suite/test_select.py
lib/sqlalchemy/testing/suite/test_sequence.py
lib/sqlalchemy/testing/suite/test_types.py
lib/sqlalchemy/testing/suite/test_update_delete.py
lib/sqlalchemy/util/__init__.py
lib/sqlalchemy/util/_collections.py
lib/sqlalchemy/util/compat.py
lib/sqlalchemy/util/deprecations.py
lib/sqlalchemy/util/langhelpers.py
lib/sqlalchemy/util/queue.py
lib/sqlalchemy/util/topological.py
test/__init__.py
test/binary_data_one.dat
test/binary_data_two.dat
test/conftest.py
test/requirements.py
test/aaa_profiling/__init__.py
test/aaa_profiling/test_compiler.py
test/aaa_profiling/test_memusage.py
test/aaa_profiling/test_orm.py
test/aaa_profiling/test_pool.py
test/aaa_profiling/test_resultset.py
test/aaa_profiling/test_zoomark.py
test/aaa_profiling/test_zoomark_orm.py
test/base/__init__.py
test/base/test_dependency.py
test/base/test_events.py
test/base/test_except.py
test/base/test_inspect.py
test/base/test_tutorials.py
test/base/test_utils.py
test/dialect/__init__.py
test/dialect/test_all.py
test/dialect/test_firebird.py
test/dialect/test_mxodbc.py
test/dialect/test_pyodbc.py
test/dialect/test_sqlite.py
test/dialect/test_suite.py
test/dialect/test_sybase.py
test/dialect/mssql/__init__.py
test/dialect/mssql/test_compiler.py
test/dialect/mssql/test_engine.py
test/dialect/mssql/test_query.py
test/dialect/mssql/test_reflection.py
test/dialect/mssql/test_types.py
test/dialect/mysql/__init__.py
test/dialect/mysql/test_compiler.py
test/dialect/mysql/test_dialect.py
test/dialect/mysql/test_for_update.py
test/dialect/mysql/test_on_duplicate.py
test/dialect/mysql/test_query.py
test/dialect/mysql/test_reflection.py
test/dialect/mysql/test_types.py
test/dialect/oracle/__init__.py
test/dialect/oracle/test_compiler.py
test/dialect/oracle/test_dialect.py
test/dialect/oracle/test_reflection.py
test/dialect/oracle/test_types.py
test/dialect/postgresql/__init__.py
test/dialect/postgresql/test_compiler.py
test/dialect/postgresql/test_dialect.py
test/dialect/postgresql/test_on_conflict.py
test/dialect/postgresql/test_query.py
test/dialect/postgresql/test_reflection.py
test/dialect/postgresql/test_types.py
test/engine/__init__.py
test/engine/test_bind.py
test/engine/test_ddlevents.py
test/engine/test_deprecations.py
test/engine/test_execute.py
test/engine/test_logging.py
test/engine/test_parseconnect.py
test/engine/test_pool.py
test/engine/test_processors.py
test/engine/test_reconnect.py
test/engine/test_reflection.py
test/engine/test_transaction.py
test/ext/__init__.py
test/ext/test_associationproxy.py
test/ext/test_automap.py
test/ext/test_baked.py
test/ext/test_compiler.py
test/ext/test_deprecations.py
test/ext/test_extendedattr.py
test/ext/test_horizontal_shard.py
test/ext/test_hybrid.py
test/ext/test_indexable.py
test/ext/test_mutable.py
test/ext/test_orderinglist.py
test/ext/test_serializer.py
test/ext/declarative/__init__.py
test/ext/declarative/test_basic.py
test/ext/declarative/test_clsregistry.py
test/ext/declarative/test_inheritance.py
test/ext/declarative/test_mixin.py
test/ext/declarative/test_reflection.py
test/orm/__init__.py
test/orm/_fixtures.py
test/orm/test_ac_relationships.py
test/orm/test_association.py
test/orm/test_assorted_eager.py
test/orm/test_attributes.py
test/orm/test_backref_mutations.py
test/orm/test_bind.py
test/orm/test_bulk.py
test/orm/test_bundle.py
test/orm/test_cascade.py
test/orm/test_collection.py
test/orm/test_compile.py
test/orm/test_composites.py
test/orm/test_cycles.py
test/orm/test_default_strategies.py
test/orm/test_defaults.py
test/orm/test_deferred.py
test/orm/test_deprecations.py
test/orm/test_descriptor.py
test/orm/test_dynamic.py
test/orm/test_eager_relations.py
test/orm/test_evaluator.py
test/orm/test_events.py
test/orm/test_expire.py
test/orm/test_froms.py
test/orm/test_generative.py
test/orm/test_hasparent.py
test/orm/test_immediate_load.py
test/orm/test_inspect.py
test/orm/test_instrumentation.py
test/orm/test_joins.py
test/orm/test_lazy_relations.py
test/orm/test_load_on_fks.py
test/orm/test_loading.py
test/orm/test_lockmode.py
test/orm/test_manytomany.py
test/orm/test_mapper.py
test/orm/test_merge.py
test/orm/test_naturalpks.py
test/orm/test_of_type.py
test/orm/test_onetoone.py
test/orm/test_options.py
test/orm/test_pickled.py
test/orm/test_query.py
test/orm/test_rel_fn.py
test/orm/test_relationships.py
test/orm/test_scoping.py
test/orm/test_selectable.py
test/orm/test_selectin_relations.py
test/orm/test_session.py
test/orm/test_subquery_relations.py
test/orm/test_sync.py
test/orm/test_transaction.py
test/orm/test_unitofwork.py
test/orm/test_unitofworkv2.py
test/orm/test_update_delete.py
test/orm/test_utils.py
test/orm/test_validators.py
test/orm/test_versioning.py
test/orm/inheritance/__init__.py
test/orm/inheritance/_poly_fixtures.py
test/orm/inheritance/test_abc_inheritance.py
test/orm/inheritance/test_abc_polymorphic.py
test/orm/inheritance/test_assorted_poly.py
test/orm/inheritance/test_basic.py
test/orm/inheritance/test_concrete.py
test/orm/inheritance/test_magazine.py
test/orm/inheritance/test_manytomany.py
test/orm/inheritance/test_poly_linked_list.py
test/orm/inheritance/test_poly_loading.py
test/orm/inheritance/test_poly_persistence.py
test/orm/inheritance/test_polymorphic_rel.py
test/orm/inheritance/test_productspec.py
test/orm/inheritance/test_relationship.py
test/orm/inheritance/test_selects.py
test/orm/inheritance/test_single.py
test/orm/inheritance/test_with_poly.py
test/perf/invalidate_stresstest.py
test/perf/orm2010.py
test/sql/__init__.py
test/sql/test_case_statement.py
test/sql/test_compiler.py
test/sql/test_constraints.py
test/sql/test_cte.py
test/sql/test_ddlemit.py
test/sql/test_defaults.py
test/sql/test_delete.py
test/sql/test_deprecations.py
test/sql/test_functions.py
test/sql/test_generative.py
test/sql/test_insert.py
test/sql/test_insert_exec.py
test/sql/test_inspect.py
test/sql/test_join_rewriting.py
test/sql/test_labels.py
test/sql/test_lateral.py
test/sql/test_metadata.py
test/sql/test_operators.py
test/sql/test_query.py
test/sql/test_quote.py
test/sql/test_resultset.py
test/sql/test_returning.py
test/sql/test_rowcount.py
test/sql/test_selectable.py
test/sql/test_tablesample.py
test/sql/test_text.py
test/sql/test_type_expressions.py
test/sql/test_types.py
test/sql/test_unicode.py
test/sql/test_update.py
test/sql/test_utils.py

@ -0,0 +1,391 @@
..\sqlalchemy\__init__.py
..\sqlalchemy\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\__pycache__\events.cpython-36.pyc
..\sqlalchemy\__pycache__\exc.cpython-36.pyc
..\sqlalchemy\__pycache__\inspection.cpython-36.pyc
..\sqlalchemy\__pycache__\interfaces.cpython-36.pyc
..\sqlalchemy\__pycache__\log.cpython-36.pyc
..\sqlalchemy\__pycache__\processors.cpython-36.pyc
..\sqlalchemy\__pycache__\schema.cpython-36.pyc
..\sqlalchemy\__pycache__\types.cpython-36.pyc
..\sqlalchemy\connectors\__init__.py
..\sqlalchemy\connectors\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\connectors\__pycache__\mxodbc.cpython-36.pyc
..\sqlalchemy\connectors\__pycache__\pyodbc.cpython-36.pyc
..\sqlalchemy\connectors\__pycache__\zxJDBC.cpython-36.pyc
..\sqlalchemy\connectors\mxodbc.py
..\sqlalchemy\connectors\pyodbc.py
..\sqlalchemy\connectors\zxJDBC.py
..\sqlalchemy\databases\__init__.py
..\sqlalchemy\databases\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\dialects\__init__.py
..\sqlalchemy\dialects\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\dialects\firebird\__init__.py
..\sqlalchemy\dialects\firebird\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\dialects\firebird\__pycache__\base.cpython-36.pyc
..\sqlalchemy\dialects\firebird\__pycache__\fdb.cpython-36.pyc
..\sqlalchemy\dialects\firebird\__pycache__\kinterbasdb.cpython-36.pyc
..\sqlalchemy\dialects\firebird\base.py
..\sqlalchemy\dialects\firebird\fdb.py
..\sqlalchemy\dialects\firebird\kinterbasdb.py
..\sqlalchemy\dialects\mssql\__init__.py
..\sqlalchemy\dialects\mssql\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\dialects\mssql\__pycache__\adodbapi.cpython-36.pyc
..\sqlalchemy\dialects\mssql\__pycache__\base.cpython-36.pyc
..\sqlalchemy\dialects\mssql\__pycache__\information_schema.cpython-36.pyc
..\sqlalchemy\dialects\mssql\__pycache__\mxodbc.cpython-36.pyc
..\sqlalchemy\dialects\mssql\__pycache__\pymssql.cpython-36.pyc
..\sqlalchemy\dialects\mssql\__pycache__\pyodbc.cpython-36.pyc
..\sqlalchemy\dialects\mssql\__pycache__\zxjdbc.cpython-36.pyc
..\sqlalchemy\dialects\mssql\adodbapi.py
..\sqlalchemy\dialects\mssql\base.py
..\sqlalchemy\dialects\mssql\information_schema.py
..\sqlalchemy\dialects\mssql\mxodbc.py
..\sqlalchemy\dialects\mssql\pymssql.py
..\sqlalchemy\dialects\mssql\pyodbc.py
..\sqlalchemy\dialects\mssql\zxjdbc.py
..\sqlalchemy\dialects\mysql\__init__.py
..\sqlalchemy\dialects\mysql\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\base.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\cymysql.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\dml.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\enumerated.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\gaerdbms.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\json.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\mysqlconnector.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\mysqldb.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\oursql.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\pymysql.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\pyodbc.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\reflection.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\types.cpython-36.pyc
..\sqlalchemy\dialects\mysql\__pycache__\zxjdbc.cpython-36.pyc
..\sqlalchemy\dialects\mysql\base.py
..\sqlalchemy\dialects\mysql\cymysql.py
..\sqlalchemy\dialects\mysql\dml.py
..\sqlalchemy\dialects\mysql\enumerated.py
..\sqlalchemy\dialects\mysql\gaerdbms.py
..\sqlalchemy\dialects\mysql\json.py
..\sqlalchemy\dialects\mysql\mysqlconnector.py
..\sqlalchemy\dialects\mysql\mysqldb.py
..\sqlalchemy\dialects\mysql\oursql.py
..\sqlalchemy\dialects\mysql\pymysql.py
..\sqlalchemy\dialects\mysql\pyodbc.py
..\sqlalchemy\dialects\mysql\reflection.py
..\sqlalchemy\dialects\mysql\types.py
..\sqlalchemy\dialects\mysql\zxjdbc.py
..\sqlalchemy\dialects\oracle\__init__.py
..\sqlalchemy\dialects\oracle\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\dialects\oracle\__pycache__\base.cpython-36.pyc
..\sqlalchemy\dialects\oracle\__pycache__\cx_oracle.cpython-36.pyc
..\sqlalchemy\dialects\oracle\__pycache__\zxjdbc.cpython-36.pyc
..\sqlalchemy\dialects\oracle\base.py
..\sqlalchemy\dialects\oracle\cx_oracle.py
..\sqlalchemy\dialects\oracle\zxjdbc.py
..\sqlalchemy\dialects\postgresql\__init__.py
..\sqlalchemy\dialects\postgresql\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\array.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\base.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\dml.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\ext.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\hstore.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\json.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\pg8000.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\psycopg2.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\psycopg2cffi.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\pygresql.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\pypostgresql.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\ranges.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\__pycache__\zxjdbc.cpython-36.pyc
..\sqlalchemy\dialects\postgresql\array.py
..\sqlalchemy\dialects\postgresql\base.py
..\sqlalchemy\dialects\postgresql\dml.py
..\sqlalchemy\dialects\postgresql\ext.py
..\sqlalchemy\dialects\postgresql\hstore.py
..\sqlalchemy\dialects\postgresql\json.py
..\sqlalchemy\dialects\postgresql\pg8000.py
..\sqlalchemy\dialects\postgresql\psycopg2.py
..\sqlalchemy\dialects\postgresql\psycopg2cffi.py
..\sqlalchemy\dialects\postgresql\pygresql.py
..\sqlalchemy\dialects\postgresql\pypostgresql.py
..\sqlalchemy\dialects\postgresql\ranges.py
..\sqlalchemy\dialects\postgresql\zxjdbc.py
..\sqlalchemy\dialects\sqlite\__init__.py
..\sqlalchemy\dialects\sqlite\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\dialects\sqlite\__pycache__\base.cpython-36.pyc
..\sqlalchemy\dialects\sqlite\__pycache__\json.cpython-36.pyc
..\sqlalchemy\dialects\sqlite\__pycache__\pysqlcipher.cpython-36.pyc
..\sqlalchemy\dialects\sqlite\__pycache__\pysqlite.cpython-36.pyc
..\sqlalchemy\dialects\sqlite\base.py
..\sqlalchemy\dialects\sqlite\json.py
..\sqlalchemy\dialects\sqlite\pysqlcipher.py
..\sqlalchemy\dialects\sqlite\pysqlite.py
..\sqlalchemy\dialects\sybase\__init__.py
..\sqlalchemy\dialects\sybase\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\dialects\sybase\__pycache__\base.cpython-36.pyc
..\sqlalchemy\dialects\sybase\__pycache__\mxodbc.cpython-36.pyc
..\sqlalchemy\dialects\sybase\__pycache__\pyodbc.cpython-36.pyc
..\sqlalchemy\dialects\sybase\__pycache__\pysybase.cpython-36.pyc
..\sqlalchemy\dialects\sybase\base.py
..\sqlalchemy\dialects\sybase\mxodbc.py
..\sqlalchemy\dialects\sybase\pyodbc.py
..\sqlalchemy\dialects\sybase\pysybase.py
..\sqlalchemy\engine\__init__.py
..\sqlalchemy\engine\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\engine\__pycache__\base.cpython-36.pyc
..\sqlalchemy\engine\__pycache__\default.cpython-36.pyc
..\sqlalchemy\engine\__pycache__\interfaces.cpython-36.pyc
..\sqlalchemy\engine\__pycache__\reflection.cpython-36.pyc
..\sqlalchemy\engine\__pycache__\result.cpython-36.pyc
..\sqlalchemy\engine\__pycache__\strategies.cpython-36.pyc
..\sqlalchemy\engine\__pycache__\threadlocal.cpython-36.pyc
..\sqlalchemy\engine\__pycache__\url.cpython-36.pyc
..\sqlalchemy\engine\__pycache__\util.cpython-36.pyc
..\sqlalchemy\engine\base.py
..\sqlalchemy\engine\default.py
..\sqlalchemy\engine\interfaces.py
..\sqlalchemy\engine\reflection.py
..\sqlalchemy\engine\result.py
..\sqlalchemy\engine\strategies.py
..\sqlalchemy\engine\threadlocal.py
..\sqlalchemy\engine\url.py
..\sqlalchemy\engine\util.py
..\sqlalchemy\event\__init__.py
..\sqlalchemy\event\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\event\__pycache__\api.cpython-36.pyc
..\sqlalchemy\event\__pycache__\attr.cpython-36.pyc
..\sqlalchemy\event\__pycache__\base.cpython-36.pyc
..\sqlalchemy\event\__pycache__\legacy.cpython-36.pyc
..\sqlalchemy\event\__pycache__\registry.cpython-36.pyc
..\sqlalchemy\event\api.py
..\sqlalchemy\event\attr.py
..\sqlalchemy\event\base.py
..\sqlalchemy\event\legacy.py
..\sqlalchemy\event\registry.py
..\sqlalchemy\events.py
..\sqlalchemy\exc.py
..\sqlalchemy\ext\__init__.py
..\sqlalchemy\ext\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\associationproxy.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\automap.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\baked.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\compiler.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\horizontal_shard.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\hybrid.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\indexable.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\instrumentation.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\mutable.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\orderinglist.cpython-36.pyc
..\sqlalchemy\ext\__pycache__\serializer.cpython-36.pyc
..\sqlalchemy\ext\associationproxy.py
..\sqlalchemy\ext\automap.py
..\sqlalchemy\ext\baked.py
..\sqlalchemy\ext\compiler.py
..\sqlalchemy\ext\declarative\__init__.py
..\sqlalchemy\ext\declarative\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\ext\declarative\__pycache__\api.cpython-36.pyc
..\sqlalchemy\ext\declarative\__pycache__\base.cpython-36.pyc
..\sqlalchemy\ext\declarative\__pycache__\clsregistry.cpython-36.pyc
..\sqlalchemy\ext\declarative\api.py
..\sqlalchemy\ext\declarative\base.py
..\sqlalchemy\ext\declarative\clsregistry.py
..\sqlalchemy\ext\horizontal_shard.py
..\sqlalchemy\ext\hybrid.py
..\sqlalchemy\ext\indexable.py
..\sqlalchemy\ext\instrumentation.py
..\sqlalchemy\ext\mutable.py
..\sqlalchemy\ext\orderinglist.py
..\sqlalchemy\ext\serializer.py
..\sqlalchemy\inspection.py
..\sqlalchemy\interfaces.py
..\sqlalchemy\log.py
..\sqlalchemy\orm\__init__.py
..\sqlalchemy\orm\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\attributes.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\base.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\collections.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\dependency.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\deprecated_interfaces.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\descriptor_props.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\dynamic.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\evaluator.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\events.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\exc.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\identity.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\instrumentation.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\interfaces.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\loading.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\mapper.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\path_registry.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\persistence.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\properties.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\query.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\relationships.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\scoping.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\session.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\state.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\strategies.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\strategy_options.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\sync.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\unitofwork.cpython-36.pyc
..\sqlalchemy\orm\__pycache__\util.cpython-36.pyc
..\sqlalchemy\orm\attributes.py
..\sqlalchemy\orm\base.py
..\sqlalchemy\orm\collections.py
..\sqlalchemy\orm\dependency.py
..\sqlalchemy\orm\deprecated_interfaces.py
..\sqlalchemy\orm\descriptor_props.py
..\sqlalchemy\orm\dynamic.py
..\sqlalchemy\orm\evaluator.py
..\sqlalchemy\orm\events.py
..\sqlalchemy\orm\exc.py
..\sqlalchemy\orm\identity.py
..\sqlalchemy\orm\instrumentation.py
..\sqlalchemy\orm\interfaces.py
..\sqlalchemy\orm\loading.py
..\sqlalchemy\orm\mapper.py
..\sqlalchemy\orm\path_registry.py
..\sqlalchemy\orm\persistence.py
..\sqlalchemy\orm\properties.py
..\sqlalchemy\orm\query.py
..\sqlalchemy\orm\relationships.py
..\sqlalchemy\orm\scoping.py
..\sqlalchemy\orm\session.py
..\sqlalchemy\orm\state.py
..\sqlalchemy\orm\strategies.py
..\sqlalchemy\orm\strategy_options.py
..\sqlalchemy\orm\sync.py
..\sqlalchemy\orm\unitofwork.py
..\sqlalchemy\orm\util.py
..\sqlalchemy\pool\__init__.py
..\sqlalchemy\pool\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\pool\__pycache__\base.cpython-36.pyc
..\sqlalchemy\pool\__pycache__\dbapi_proxy.cpython-36.pyc
..\sqlalchemy\pool\__pycache__\impl.cpython-36.pyc
..\sqlalchemy\pool\base.py
..\sqlalchemy\pool\dbapi_proxy.py
..\sqlalchemy\pool\impl.py
..\sqlalchemy\processors.py
..\sqlalchemy\schema.py
..\sqlalchemy\sql\__init__.py
..\sqlalchemy\sql\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\annotation.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\base.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\compiler.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\crud.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\ddl.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\default_comparator.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\dml.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\elements.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\expression.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\functions.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\naming.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\operators.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\schema.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\selectable.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\sqltypes.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\type_api.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\util.cpython-36.pyc
..\sqlalchemy\sql\__pycache__\visitors.cpython-36.pyc
..\sqlalchemy\sql\annotation.py
..\sqlalchemy\sql\base.py
..\sqlalchemy\sql\compiler.py
..\sqlalchemy\sql\crud.py
..\sqlalchemy\sql\ddl.py
..\sqlalchemy\sql\default_comparator.py
..\sqlalchemy\sql\dml.py
..\sqlalchemy\sql\elements.py
..\sqlalchemy\sql\expression.py
..\sqlalchemy\sql\functions.py
..\sqlalchemy\sql\naming.py
..\sqlalchemy\sql\operators.py
..\sqlalchemy\sql\schema.py
..\sqlalchemy\sql\selectable.py
..\sqlalchemy\sql\sqltypes.py
..\sqlalchemy\sql\type_api.py
..\sqlalchemy\sql\util.py
..\sqlalchemy\sql\visitors.py
..\sqlalchemy\testing\__init__.py
..\sqlalchemy\testing\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\assertions.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\assertsql.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\config.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\engines.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\entities.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\exclusions.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\fixtures.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\mock.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\pickleable.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\profiling.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\provision.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\replay_fixture.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\requirements.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\schema.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\util.cpython-36.pyc
..\sqlalchemy\testing\__pycache__\warnings.cpython-36.pyc
..\sqlalchemy\testing\assertions.py
..\sqlalchemy\testing\assertsql.py
..\sqlalchemy\testing\config.py
..\sqlalchemy\testing\engines.py
..\sqlalchemy\testing\entities.py
..\sqlalchemy\testing\exclusions.py
..\sqlalchemy\testing\fixtures.py
..\sqlalchemy\testing\mock.py
..\sqlalchemy\testing\pickleable.py
..\sqlalchemy\testing\plugin\__init__.py
..\sqlalchemy\testing\plugin\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\testing\plugin\__pycache__\bootstrap.cpython-36.pyc
..\sqlalchemy\testing\plugin\__pycache__\plugin_base.cpython-36.pyc
..\sqlalchemy\testing\plugin\__pycache__\pytestplugin.cpython-36.pyc
..\sqlalchemy\testing\plugin\bootstrap.py
..\sqlalchemy\testing\plugin\plugin_base.py
..\sqlalchemy\testing\plugin\pytestplugin.py
..\sqlalchemy\testing\profiling.py
..\sqlalchemy\testing\provision.py
..\sqlalchemy\testing\replay_fixture.py
..\sqlalchemy\testing\requirements.py
..\sqlalchemy\testing\schema.py
..\sqlalchemy\testing\suite\__init__.py
..\sqlalchemy\testing\suite\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\testing\suite\__pycache__\test_cte.cpython-36.pyc
..\sqlalchemy\testing\suite\__pycache__\test_ddl.cpython-36.pyc
..\sqlalchemy\testing\suite\__pycache__\test_dialect.cpython-36.pyc
..\sqlalchemy\testing\suite\__pycache__\test_insert.cpython-36.pyc
..\sqlalchemy\testing\suite\__pycache__\test_reflection.cpython-36.pyc
..\sqlalchemy\testing\suite\__pycache__\test_results.cpython-36.pyc
..\sqlalchemy\testing\suite\__pycache__\test_select.cpython-36.pyc
..\sqlalchemy\testing\suite\__pycache__\test_sequence.cpython-36.pyc
..\sqlalchemy\testing\suite\__pycache__\test_types.cpython-36.pyc
..\sqlalchemy\testing\suite\__pycache__\test_update_delete.cpython-36.pyc
..\sqlalchemy\testing\suite\test_cte.py
..\sqlalchemy\testing\suite\test_ddl.py
..\sqlalchemy\testing\suite\test_dialect.py
..\sqlalchemy\testing\suite\test_insert.py
..\sqlalchemy\testing\suite\test_reflection.py
..\sqlalchemy\testing\suite\test_results.py
..\sqlalchemy\testing\suite\test_select.py
..\sqlalchemy\testing\suite\test_sequence.py
..\sqlalchemy\testing\suite\test_types.py
..\sqlalchemy\testing\suite\test_update_delete.py
..\sqlalchemy\testing\util.py
..\sqlalchemy\testing\warnings.py
..\sqlalchemy\types.py
..\sqlalchemy\util\__init__.py
..\sqlalchemy\util\__pycache__\__init__.cpython-36.pyc
..\sqlalchemy\util\__pycache__\_collections.cpython-36.pyc
..\sqlalchemy\util\__pycache__\compat.cpython-36.pyc
..\sqlalchemy\util\__pycache__\deprecations.cpython-36.pyc
..\sqlalchemy\util\__pycache__\langhelpers.cpython-36.pyc
..\sqlalchemy\util\__pycache__\queue.cpython-36.pyc
..\sqlalchemy\util\__pycache__\topological.cpython-36.pyc
..\sqlalchemy\util\_collections.py
..\sqlalchemy\util\compat.py
..\sqlalchemy\util\deprecations.py
..\sqlalchemy\util\langhelpers.py
..\sqlalchemy\util\queue.py
..\sqlalchemy\util\topological.py
PKG-INFO
SOURCES.txt
dependency_links.txt
requires.txt
top_level.txt

@ -0,0 +1,30 @@
[mssql]
pyodbc
[mssql_pymssql]
pymssql
[mssql_pyodbc]
pyodbc
[mysql]
mysqlclient
[oracle]
cx_oracle
[postgresql]
psycopg2
[postgresql_pg8000]
pg8000
[postgresql_psycopg2binary]
psycopg2-binary
[postgresql_psycopg2cffi]
psycopg2cffi
[pymysql]
pymysql

@ -0,0 +1,101 @@
Metadata-Version: 2.1
Name: WTForms
Version: 2.2.1
Summary: A flexible forms validation and rendering library for Python web development.
Home-page: https://wtforms.readthedocs.io/
Author: Thomas Johansson, James Crasta
Author-email: wtforms@simplecodes.com
Maintainer: WTForms team
Maintainer-email: davidism@gmail.com
License: BSD
Project-URL: Documentation, https://wtforms.readthedocs.io/
Project-URL: Code, https://github.com/wtforms/wtforms
Project-URL: Issue tracker, https://github.com/wtforms/wtforms/issues
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: locale
Requires-Dist: ordereddict; python_version=="2.6"
Provides-Extra: locale
Requires-Dist: Babel (>=1.3); extra == 'locale'
WTForms
=======
WTForms is a flexible forms validation and rendering library for Python
web development. It is `framework agnostic`_ and can work with whatever
web framework and template engine you choose. There are various
community libraries that provide closer integration with popular
frameworks.
To get started using WTForms, we recommend reading the `crash course`_
in the docs.
.. _crash course: https://wtforms.readthedocs.io/en/stable/crash_course.html
.. _framework agnostic: https://wtforms.readthedocs.io/en/stable/faq.html#does-wtforms-work-with-library-here
Installation
------------
Install and update using pip::
pip install -U WTForms
Third-Party Library Integrations
--------------------------------
WTForms is designed to work with any web framework and template engine.
There are a number of community-provided libraries that make integrating
with frameworks even better.
- `Flask-WTF`_ integrates with the Flask framework. It can
automatically load data from the request, uses Flask-Babel to
translate based on user-selected locale, provides full-application
CSRF, and more.
- `WTForms-Alchemy`_ provides rich support for generating forms from
SQLAlchemy models, including an expanded set of fields and
validators.
- `WTForms-SQLAlchemy`_ provides ORM-backed fields and form generation
from SQLAlchemy models.
- `WTForms-AppEngine`_ provides ORM-backed fields and form generation
from AppEnding db/ndb schema
- `WTForms-AppEngine`_ provides ORM-backed fields and form generation
from Django models, as well as integration with Django's I18N
support.
.. _Flask-WTF: https://flask-wtf.readthedocs.io/
.. _WTForms-Alchemy: https://wtforms-alchemy.readthedocs.io/
.. _WTForms-SQLAlchemy: https://github.com/wtforms/wtforms-sqlalchemy
.. _WTForms-AppEngine: https://github.com/wtforms/wtforms-appengine
.. _WTForms-Django: https://github.com/wtforms/wtforms-django
Links
-----
- Documentation: https://wtforms.readthedocs.io/
- License: `BSD <https://github.com/wtforms/wtforms/blob/master/LICENSE>`_
- Releases: https://pypi.org/project/WTForms/
- Code: https://github.com/wtforms/wtforms
- Issue tracker: https://github.com/wtforms/wtforms/issues
- Test status:
- Linux: https://travis-ci.org/wtforms/wtforms
- Test coverage: https://coveralls.io/github/wtforms/wtforms

@ -0,0 +1,147 @@
WTForms-2.2.1.dist-info/METADATA,sha256=Aqv5s_FPo1o3VxjnX-nclKn2dBPIVOpTwggPPH-DJs0,3771
WTForms-2.2.1.dist-info/RECORD,,
WTForms-2.2.1.dist-info/WHEEL,sha256=gduuPyBvFJQSQ0zdyxF7k0zynDXbIbvg5ZBHoXum5uk,110
WTForms-2.2.1.dist-info/top_level.txt,sha256=k5K62RAEkLEN23p118t3tRgvL6I_k56NiIU7Hk8Phv8,8
wtforms/__init__.py,sha256=h4gmUHtk1Y9cGJ-l63rhrp-nC9REGdpcRPBGoJKP9hk,380
wtforms/compat.py,sha256=buY-q7yLNO-2OlxA5QPAcdBO8urjZTtxvFnxg_1Euuo,589
wtforms/form.py,sha256=ahME3_8CmTuvVsatV-AKqinBkOSEnLOE_nMeQLgrQEA,11608
wtforms/i18n.py,sha256=RuMPdvfsxHGMqKySUy4DpMfEAzruPK_7gHe6GQTrekc,2175
wtforms/meta.py,sha256=9yLQuKP4N_OiPBsPy3tBc7auldxhFryZweySDsKL8zI,3822
wtforms/utils.py,sha256=Zg70vKv96pnHjrkSZ6KlzSo1noh20GV5IqfPy6FrOyA,1504
wtforms/validators.py,sha256=niMtYGGRijIiZ2ruslYfRP7CTGDul_DHiR-iYen7zRg,19430
wtforms/csrf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
wtforms/csrf/core.py,sha256=Ot8eOSAZ88qeDBlSUhRqiLfyWA13g3EFJ4zWZ7EGYnc,3157
wtforms/csrf/session.py,sha256=baww8MJ5YObyYItXX0Vz5AjxZTdOfTqti3zsD3koka0,3056
wtforms/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
wtforms/ext/appengine/__init__.py,sha256=xXkE1qkwzkkBw4o0YhWGZSZXcsV60DaLxX4fkxNcNe8,269
wtforms/ext/appengine/db.py,sha256=IEJng34ztXLVSlLxneZ7M4kgGOZOPf9zR_6RTqv6Z1Q,18588
wtforms/ext/appengine/fields.py,sha256=8Z2BJy7ft0fu_vZksneZ7xdVxdqHkWIMNjgnyfdKtho,7574
wtforms/ext/appengine/ndb.py,sha256=szIwWA5FyD2lqZefayl__C2UsXMEAGQndqPYPhOH4Vk,17124
wtforms/ext/csrf/__init__.py,sha256=bIQ48rbnoYrYPZkkGz04b_7PZ8leQY_CExEqYw8yitI,45
wtforms/ext/csrf/fields.py,sha256=Ta3vLg9KQkpUTCnDF-7CP3IW11X0UqqhvL68sAopYTs,430
wtforms/ext/csrf/form.py,sha256=ZxmvC3Um2qYeUncu6D390-W62mVQclzwPLP9_R7GedU,1785
wtforms/ext/csrf/session.py,sha256=aKYb9_jgEmxIgvWuk0cdx9YAGTi9s3F4xy_0ibxyhbo,2627
wtforms/ext/dateutil/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
wtforms/ext/dateutil/fields.py,sha256=RlupqB1WX_HiKJEYqi9IAxiCElxgbBDHHuXrGF4nbYs,3429
wtforms/ext/django/__init__.py,sha256=OQ0wr3s5_cUmUU7htHXhobyxVWJS16Ve4qBK_PLs_rw,259
wtforms/ext/django/fields.py,sha256=pEWxaAtMq5_p8QaJPOffWsX7U4LB5f8Bq8ZBw4fedxk,4580
wtforms/ext/django/i18n.py,sha256=VLvzJ8lQOqs5Uxnhe4aOE5StGgPEvGhfBEHNrRQFtp0,626
wtforms/ext/django/orm.py,sha256=Mme5i_o_bJTXGKkabRz03EJmGggPMejAg95XNhYtNUc,6096
wtforms/ext/django/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
wtforms/ext/django/templatetags/wtforms.py,sha256=iCOicSMEkixm5bcJHz35Zx0h6xVwnz1H9JglB_hU69o,2826
wtforms/ext/i18n/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
wtforms/ext/i18n/form.py,sha256=mfsavr4LGI1GhoFLsWSuSqVPHH6QNiyqoAfY94u-XP0,1608
wtforms/ext/i18n/utils.py,sha256=rx9-pNYjIp8DLU-VQ9XxRSXHYZuFv4ktRejzVBPTDBg,530
wtforms/ext/sqlalchemy/__init__.py,sha256=4U9BzeiFD_YF8pXRsTehei0ekP6jikt2bX4MN3GNT9s,431
wtforms/ext/sqlalchemy/fields.py,sha256=XwOgJUJCcXvw-QGdF6q2w51m1CI4E_COq8GXb9blgI0,6846
wtforms/ext/sqlalchemy/orm.py,sha256=6wJN-Zm4YB3st9xsXU5xJR5jQUsdSRqcbEZ7JvvGD9s,10671
wtforms/fields/__init__.py,sha256=M-0pFfY9EEk-GoYzRkg3yvarM_iP_cRhPjpLEl5KgVU,219
wtforms/fields/core.py,sha256=KevHc47k4mMJgRGe8Y07UrS_9o_nzXbn3U2HznpdMI0,34307
wtforms/fields/html5.py,sha256=bwLHIBrEWICRcS80am_lBp6GitDCVIRvBdIWEPJeSz0,1995
wtforms/fields/simple.py,sha256=dY7cYfb6PXMDjUefXcDeTDWpv3UGyr_BMlebJAeoRso,2218
wtforms/locale/README.md,sha256=xL3Ain6UPZK3UdL8tMrIKwfodEsPT0IYCVDpI6do524,1062
wtforms/locale/wtforms.pot,sha256=Sqe4LRpObVRUc30htYXgZuueKYfW7wt2lNVKtM_Jrr0,4170
wtforms/locale/ar/LC_MESSAGES/wtforms.mo,sha256=r1DDYnBCr1hT7KwEG3NpQLR52i4j_-er5ENIVqT9Sbo,4530
wtforms/locale/ar/LC_MESSAGES/wtforms.po,sha256=Qkhg_pS-ZEf7jEZz76mDC47UPpqWcU_8t7L88ALAPvk,6262
wtforms/locale/bg/LC_MESSAGES/wtforms.mo,sha256=aPnglyINf0hH4FGUM3U5OJpqcJT_8XRx6GiaD4Jif3g,4297
wtforms/locale/bg/LC_MESSAGES/wtforms.po,sha256=xflJaMOGUTNN7zbFMWL-FbMVjmj-Svmvkek84mJl5NI,6356
wtforms/locale/ca/LC_MESSAGES/wtforms.mo,sha256=zBX48Ru44A2O82FXwC9CwzU3_FiFkUyb4KGNya4toSg,3425
wtforms/locale/ca/LC_MESSAGES/wtforms.po,sha256=oT09ydRQNsmf0a1uwskao0wfbwQqAh2tKXjFqI_iscw,5465
wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.mo,sha256=MJQPoiMNPfdHYX5eQQ2OW7PmvQ9BFETva2qm3xmPSvo,3618
wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.po,sha256=MZ1Iv28-oX4dqzSPgGo65YU3iijeBmYBKZSGsl8YYS0,5596
wtforms/locale/cy/LC_MESSAGES/wtforms.mo,sha256=8pJPG9dguZLej33ksWSwWmCOKIJ7VmpNVlaDMb30_lc,3371
wtforms/locale/cy/LC_MESSAGES/wtforms.po,sha256=DTGkDUWJ1MsZqFPV8YhwHaBI1uJP6uXwiud7K3LW1yw,5415
wtforms/locale/de/LC_MESSAGES/wtforms.mo,sha256=D4BRsJeeT_cKYagO7W1LHQ8YpwC2c7_0hbv3tDgk82E,3412
wtforms/locale/de/LC_MESSAGES/wtforms.po,sha256=BF7F3vwQOAL_yaZTHi7x2KZnaCTzz3MNUNCtuc6e47A,5457
wtforms/locale/de_CH/LC_MESSAGES/wtforms.mo,sha256=lBUgz2N_AlkXB4W-CxaNGuHdwhgTrYCPtwM9DWL-pP0,3418
wtforms/locale/de_CH/LC_MESSAGES/wtforms.po,sha256=LiAqravsNbETdXHJiOi3vJD4o3hWrTRZWSHcLNvHjgc,5477
wtforms/locale/el/LC_MESSAGES/wtforms.mo,sha256=r0_oQGB_KYBZdSmFsielQMCF0P7rgsLDCA28u37XAkw,4307
wtforms/locale/el/LC_MESSAGES/wtforms.po,sha256=snlBcC-cjlFdpIbSG9pRGYlWFhl1EaQX72Umv2PWfp8,6345
wtforms/locale/en/LC_MESSAGES/wtforms.mo,sha256=DCJnvT-_j_oec9za8vxn0FZSog4mm5PnaiWIpesctDE,3285
wtforms/locale/en/LC_MESSAGES/wtforms.po,sha256=-GGpFQm9Sdz3Yg0EqltIGTEcOwnYqmepRSREkHV_UVU,5347
wtforms/locale/es/LC_MESSAGES/wtforms.mo,sha256=U_oe-S3-i6A2VsBTVKxZ8N5QAEbpqXBlenSIaLnFupE,3394
wtforms/locale/es/LC_MESSAGES/wtforms.po,sha256=P36kwWq3LZNjYHXTyoyMl86WziWpZYXxGFsFiqev1oU,5368
wtforms/locale/et/LC_MESSAGES/wtforms.mo,sha256=Ugx0IpG1TJtP-DKpNZiVyo-L5F8ESrr_qCpPXR96pww,3456
wtforms/locale/et/LC_MESSAGES/wtforms.po,sha256=doeYijsnPkyHy_JK4JRH6AQdHG8uaQTQWYwsCP6_Iuk,5497
wtforms/locale/fa/LC_MESSAGES/wtforms.mo,sha256=exJzwjxXvOALqJhsQetN9Kcad4Lx62Exvnx2jtzja8Q,4137
wtforms/locale/fa/LC_MESSAGES/wtforms.po,sha256=MHjVwlp-MHMV-TTUUkUYtuBdtbEjfV0jzVSgWHFv80Q,6149
wtforms/locale/fi/LC_MESSAGES/wtforms.mo,sha256=NiodjvNOW25UkxEpuCioXdpvjbGwPoYmz0dfiMxE3S8,3416
wtforms/locale/fi/LC_MESSAGES/wtforms.po,sha256=4uP6A6sfNoATdRR_8PlecqiiTsVzIp9qpcn9qe0jGMA,5456
wtforms/locale/fr/LC_MESSAGES/wtforms.mo,sha256=BoZI4I1MK0-nipyLWOSG-s_55E9x9eG0WqYdz1qZ1KQ,3484
wtforms/locale/fr/LC_MESSAGES/wtforms.po,sha256=60tb7Uyco3tdKc1Z4sdvwta46V_RGSmvXM9SdvuBvhg,5529
wtforms/locale/he/LC_MESSAGES/wtforms.mo,sha256=UhetGKepgOnGXa5IsjZBdOi5IbPLCufpIugkkDuXkjQ,3649
wtforms/locale/he/LC_MESSAGES/wtforms.po,sha256=GJy7zG0ik8U0YnubNlfjjl9iPT62w3XyaAP4kNCntkQ,5657
wtforms/locale/hu/LC_MESSAGES/wtforms.mo,sha256=Z-qEeJI422dmm7-2qJIgCuCS1eyS2pJfoavPnGK2334,3544
wtforms/locale/hu/LC_MESSAGES/wtforms.po,sha256=eiyNXYa4_XLQWRd-j4KmAXml27cYAPjIBhjjIv9WMbE,5492
wtforms/locale/it/LC_MESSAGES/wtforms.mo,sha256=petuqW4x1p1S69sJax15WpLQryWoDRXW0uQjr58E9Jw,3510
wtforms/locale/it/LC_MESSAGES/wtforms.po,sha256=EuI0Plf7nLfg5NcRPqQvfg3z7fpfIdRQGBmyq1ivpGE,5556
wtforms/locale/ja/LC_MESSAGES/wtforms.mo,sha256=thfPsxKfihz2wNvb9LA7MzYb4PnfyXT81gaE_802AlM,3736
wtforms/locale/ja/LC_MESSAGES/wtforms.po,sha256=ydUzTwxnk8sUQcPTeS7AuU7sgArIMWgbDzxFt85mhG8,5753
wtforms/locale/ko/LC_MESSAGES/wtforms.mo,sha256=ZRJGcizRhJifuw4rElZ6Bb-hNdH3zqCYzxhwYJisCpU,3851
wtforms/locale/ko/LC_MESSAGES/wtforms.po,sha256=9os2sRuqxoX0fTWHr47IvBwlkY_sDoLKdn3byS7MfjQ,5842
wtforms/locale/nb/LC_MESSAGES/wtforms.mo,sha256=0YxYTElaTGBpIurcZqZHPU2lXslt3UNF_HOw575OAKM,3337
wtforms/locale/nb/LC_MESSAGES/wtforms.po,sha256=NXrr3nrnoOo2x2t0g8UZXT2Jm9KQnkYdnieeoB7U9Yw,5387
wtforms/locale/nl/LC_MESSAGES/wtforms.mo,sha256=8wLTkRK82jpG5oDkqM-jLNVLYHte4fRHYF6VAN7lB6U,3350
wtforms/locale/nl/LC_MESSAGES/wtforms.po,sha256=9xSoztymVdIgFBA2vnzaHeSK4qEGTGbiPbfwjdcHN0k,5388
wtforms/locale/pl/LC_MESSAGES/wtforms.mo,sha256=QUs5iz_IOoo6oCVmcpWWNNkXyqYA0X01wERmQYQiXYo,3610
wtforms/locale/pl/LC_MESSAGES/wtforms.po,sha256=XrkwltOhyLHrOOgxYVvcmR2Hcw4LUN3_sZEdJofS5Vk,5652
wtforms/locale/pt/LC_MESSAGES/wtforms.mo,sha256=PC5HRiM-QYt4GX3eMPapzG31jLKmo3zt6nKGVb_o174,3438
wtforms/locale/pt/LC_MESSAGES/wtforms.po,sha256=cXIZJJZ4UDDR24yrQ-XYck3klonRZd9Ajt8A7dqqJc4,5481
wtforms/locale/ru/LC_MESSAGES/wtforms.mo,sha256=ski71qWfnwGL9GtZEQZ1fksHBeZsePxi4ZN16AlLeZE,4406
wtforms/locale/ru/LC_MESSAGES/wtforms.po,sha256=3eeI-CxivICl6FzYpKrqfYnz2rB68hMNCicC_9aM90s,6407
wtforms/locale/sk/LC_MESSAGES/wtforms.mo,sha256=Lo_5eGNF_LnkJsJLOde_YNWE_F3UZtScFTFlO4v-EyU,3548
wtforms/locale/sk/LC_MESSAGES/wtforms.po,sha256=ywPpnxYnHgEkD6Ab7LJgyqgC6dIj8cBmn6hB21aS3NI,5586
wtforms/locale/sv/LC_MESSAGES/wtforms.mo,sha256=U7noK9cso_pRgaQcvF4duRQ69joI7SHN0XcHyd0mAVg,3376
wtforms/locale/sv/LC_MESSAGES/wtforms.po,sha256=jMtpwUlQPbi4Xiut9KNfLjGhsjqmys1Y_iGZ3lJA4NQ,5416
wtforms/locale/tr/LC_MESSAGES/wtforms.mo,sha256=kp3J8k2FVBaXVVJJclGnUmZTEUYHS6Hg1v2baGwtReo,3391
wtforms/locale/tr/LC_MESSAGES/wtforms.po,sha256=PFo_e3vKCMgKtkcQSaXqNOlr-YgzxvgUtg8Ju5M-8f8,5431
wtforms/locale/uk/LC_MESSAGES/wtforms.mo,sha256=5iZS-8LmCyeteqN3TXQ15byNTGJbjpsDa8AF3zh6L1o,4451
wtforms/locale/uk/LC_MESSAGES/wtforms.po,sha256=fIijOGm8gXO-yZkdYoX6kWMPXZE6j9yALhekfQCK5KU,6520
wtforms/locale/zh/LC_MESSAGES/wtforms.mo,sha256=yCzjCCwAf5yu80NhllpGqlk7V6PBFyJYfoZ6IF2dQnM,3362
wtforms/locale/zh/LC_MESSAGES/wtforms.po,sha256=ZIh59O9rnjZMRpdKFfvrk59wouOAUHyjZS0f-TMsN6U,5378
wtforms/locale/zh_TW/LC_MESSAGES/wtforms.mo,sha256=iha5oFUQDVs7wPBpcWLLAP_Jgm42Ea9n9xIlaCsUsNE,3204
wtforms/locale/zh_TW/LC_MESSAGES/wtforms.po,sha256=a7q2T9fdwN_xESBCD4umHMfSptN7Qt-abjO9UFRWDBo,5218
wtforms/widgets/__init__.py,sha256=nxI0oIsofuJCNgc4Oxwzf3_q3IiCYZTSiCoEuSRZeJM,124
wtforms/widgets/core.py,sha256=X3I5PRFbPeX1nU3DrPpsJyglsObujdN1hMxHHFTkKOk,11150
wtforms/widgets/html5.py,sha256=LDnNegNTx-LYpw4YkbymvS2TaA2V03p2rRdYN83skYQ,2440
WTForms-2.2.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
wtforms/csrf/__pycache__/core.cpython-36.pyc,,
wtforms/csrf/__pycache__/session.cpython-36.pyc,,
wtforms/csrf/__pycache__/__init__.cpython-36.pyc,,
wtforms/ext/appengine/__pycache__/db.cpython-36.pyc,,
wtforms/ext/appengine/__pycache__/fields.cpython-36.pyc,,
wtforms/ext/appengine/__pycache__/ndb.cpython-36.pyc,,
wtforms/ext/appengine/__pycache__/__init__.cpython-36.pyc,,
wtforms/ext/csrf/__pycache__/fields.cpython-36.pyc,,
wtforms/ext/csrf/__pycache__/form.cpython-36.pyc,,
wtforms/ext/csrf/__pycache__/session.cpython-36.pyc,,
wtforms/ext/csrf/__pycache__/__init__.cpython-36.pyc,,
wtforms/ext/dateutil/__pycache__/fields.cpython-36.pyc,,
wtforms/ext/dateutil/__pycache__/__init__.cpython-36.pyc,,
wtforms/ext/django/templatetags/__pycache__/wtforms.cpython-36.pyc,,
wtforms/ext/django/templatetags/__pycache__/__init__.cpython-36.pyc,,
wtforms/ext/django/__pycache__/fields.cpython-36.pyc,,
wtforms/ext/django/__pycache__/i18n.cpython-36.pyc,,
wtforms/ext/django/__pycache__/orm.cpython-36.pyc,,
wtforms/ext/django/__pycache__/__init__.cpython-36.pyc,,
wtforms/ext/i18n/__pycache__/form.cpython-36.pyc,,
wtforms/ext/i18n/__pycache__/utils.cpython-36.pyc,,
wtforms/ext/i18n/__pycache__/__init__.cpython-36.pyc,,
wtforms/ext/sqlalchemy/__pycache__/fields.cpython-36.pyc,,
wtforms/ext/sqlalchemy/__pycache__/orm.cpython-36.pyc,,
wtforms/ext/sqlalchemy/__pycache__/__init__.cpython-36.pyc,,
wtforms/ext/__pycache__/__init__.cpython-36.pyc,,
wtforms/fields/__pycache__/core.cpython-36.pyc,,
wtforms/fields/__pycache__/html5.cpython-36.pyc,,
wtforms/fields/__pycache__/simple.cpython-36.pyc,,
wtforms/fields/__pycache__/__init__.cpython-36.pyc,,
wtforms/widgets/__pycache__/core.cpython-36.pyc,,
wtforms/widgets/__pycache__/html5.cpython-36.pyc,,
wtforms/widgets/__pycache__/__init__.cpython-36.pyc,,
wtforms/__pycache__/compat.cpython-36.pyc,,
wtforms/__pycache__/form.cpython-36.pyc,,
wtforms/__pycache__/i18n.cpython-36.pyc,,
wtforms/__pycache__/meta.cpython-36.pyc,,
wtforms/__pycache__/utils.cpython-36.pyc,,
wtforms/__pycache__/validators.cpython-36.pyc,,
wtforms/__pycache__/__init__.cpython-36.pyc,,

@ -0,0 +1,6 @@
Wheel-Version: 1.0
Generator: bdist_wheel (0.31.1)
Root-Is-Purelib: true
Tag: py2-none-any
Tag: py3-none-any

@ -0,0 +1,80 @@
Werkzeug
========
Werkzeug is a comprehensive `WSGI`_ web application library. It began as
a simple collection of various utilities for WSGI applications and has
become one of the most advanced WSGI utility libraries.
It includes:
* An interactive debugger that allows inspecting stack traces and source
code in the browser with an interactive interpreter for any frame in
the stack.
* A full-featured request object with objects to interact with headers,
query args, form data, files, and cookies.
* A response object that can wrap other WSGI applications and handle
streaming data.
* A routing system for matching URLs to endpoints and generating URLs
for endpoints, with an extensible system for capturing variables from
URLs.
* HTTP utilities to handle entity tags, cache control, dates, user
agents, cookies, files, and more.
* A threaded WSGI server for use while developing applications locally.
* A test client for simulating HTTP requests during testing without
requiring running a server.
Werkzeug is Unicode aware and doesn't enforce any dependencies. It is up
to the developer to choose a template engine, database adapter, and even
how to handle requests. It can be used to build all sorts of end user
applications such as blogs, wikis, or bulletin boards.
`Flask`_ wraps Werkzeug, using it to handle the details of WSGI while
providing more structure and patterns for defining powerful
applications.
Installing
----------
Install and update using `pip`_:
.. code-block:: text
pip install -U Werkzeug
A Simple Example
----------------
.. code-block:: python
from werkzeug.wrappers import Request, Response
@Request.application
def application(request):
return Response('Hello, World!')
if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('localhost', 4000, application)
Links
-----
* Website: https://www.palletsprojects.com/p/werkzeug/
* Releases: https://pypi.org/project/Werkzeug/
* Code: https://github.com/pallets/werkzeug
* Issue tracker: https://github.com/pallets/werkzeug/issues
* Test status:
* Linux, Mac: https://travis-ci.org/pallets/werkzeug
* Windows: https://ci.appveyor.com/project/davidism/werkzeug
* Test coverage: https://codecov.io/gh/pallets/werkzeug
.. _WSGI: https://wsgi.readthedocs.io/en/latest/
.. _Flask: https://www.palletsprojects.com/p/flask/
.. _pip: https://pip.pypa.io/en/stable/quickstart/

@ -0,0 +1,31 @@
Copyright © 2007 by the Pallets team.
Some rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

@ -0,0 +1,116 @@
Metadata-Version: 2.0
Name: Werkzeug
Version: 0.14.1
Summary: The comprehensive WSGI web application library.
Home-page: https://www.palletsprojects.org/p/werkzeug/
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
License: BSD
Description-Content-Type: UNKNOWN
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: dev
Requires-Dist: coverage; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: sphinx; extra == 'dev'
Requires-Dist: tox; extra == 'dev'
Provides-Extra: termcolor
Requires-Dist: termcolor; extra == 'termcolor'
Provides-Extra: watchdog
Requires-Dist: watchdog; extra == 'watchdog'
Werkzeug
========
Werkzeug is a comprehensive `WSGI`_ web application library. It began as
a simple collection of various utilities for WSGI applications and has
become one of the most advanced WSGI utility libraries.
It includes:
* An interactive debugger that allows inspecting stack traces and source
code in the browser with an interactive interpreter for any frame in
the stack.
* A full-featured request object with objects to interact with headers,
query args, form data, files, and cookies.
* A response object that can wrap other WSGI applications and handle
streaming data.
* A routing system for matching URLs to endpoints and generating URLs
for endpoints, with an extensible system for capturing variables from
URLs.
* HTTP utilities to handle entity tags, cache control, dates, user
agents, cookies, files, and more.
* A threaded WSGI server for use while developing applications locally.
* A test client for simulating HTTP requests during testing without
requiring running a server.
Werkzeug is Unicode aware and doesn't enforce any dependencies. It is up
to the developer to choose a template engine, database adapter, and even
how to handle requests. It can be used to build all sorts of end user
applications such as blogs, wikis, or bulletin boards.
`Flask`_ wraps Werkzeug, using it to handle the details of WSGI while
providing more structure and patterns for defining powerful
applications.
Installing
----------
Install and update using `pip`_:
.. code-block:: text
pip install -U Werkzeug
A Simple Example
----------------
.. code-block:: python
from werkzeug.wrappers import Request, Response
@Request.application
def application(request):
return Response('Hello, World!')
if __name__ == '__main__':
from werkzeug.serving import run_simple
run_simple('localhost', 4000, application)
Links
-----
* Website: https://www.palletsprojects.com/p/werkzeug/
* Releases: https://pypi.org/project/Werkzeug/
* Code: https://github.com/pallets/werkzeug
* Issue tracker: https://github.com/pallets/werkzeug/issues
* Test status:
* Linux, Mac: https://travis-ci.org/pallets/werkzeug
* Windows: https://ci.appveyor.com/project/davidism/werkzeug
* Test coverage: https://codecov.io/gh/pallets/werkzeug
.. _WSGI: https://wsgi.readthedocs.io/en/latest/
.. _Flask: https://www.palletsprojects.com/p/flask/
.. _pip: https://pip.pypa.io/en/stable/quickstart/

@ -0,0 +1,97 @@
Werkzeug-0.14.1.dist-info/DESCRIPTION.rst,sha256=rOCN36jwsWtWsTpqPG96z7FMilB5qI1CIARSKRuUmz8,2452
Werkzeug-0.14.1.dist-info/LICENSE.txt,sha256=xndz_dD4m269AF9l_Xbl5V3tM1N3C1LoZC2PEPxWO-8,1534
Werkzeug-0.14.1.dist-info/METADATA,sha256=FbfadrPdJNUWAxMOKxGUtHe5R3IDSBKYYmAz3FvI3uY,3872
Werkzeug-0.14.1.dist-info/RECORD,,
Werkzeug-0.14.1.dist-info/WHEEL,sha256=GrqQvamwgBV4nLoJe0vhYRSWzWsx7xjlt74FT0SWYfE,110
Werkzeug-0.14.1.dist-info/metadata.json,sha256=4489UTt6HBp2NQil95-pBkjU4Je93SMHvMxZ_rjOpqA,1452
Werkzeug-0.14.1.dist-info/top_level.txt,sha256=QRyj2VjwJoQkrwjwFIOlB8Xg3r9un0NtqVHQF-15xaw,9
werkzeug/__init__.py,sha256=NR0d4n_-U9BLVKlOISean3zUt2vBwhvK-AZE6M0sC0k,6842
werkzeug/_compat.py,sha256=8c4U9o6A_TR9nKCcTbpZNxpqCXcXDVIbFawwKM2s92c,6311
werkzeug/_internal.py,sha256=GhEyGMlsSz_tYjsDWO9TG35VN7304MM8gjKDrXLEdVc,13873
werkzeug/_reloader.py,sha256=AyPphcOHPbu6qzW0UbrVvTDJdre5WgpxbhIJN_TqzUc,9264
werkzeug/datastructures.py,sha256=3IgNKNqrz-ZjmAG7y3YgEYK-enDiMT_b652PsypWcYg,90080
werkzeug/exceptions.py,sha256=3wp95Hqj9FqV8MdikV99JRcHse_fSMn27V8tgP5Hw2c,20505
werkzeug/filesystem.py,sha256=hHWeWo_gqLMzTRfYt8-7n2wWcWUNTnDyudQDLOBEICE,2175
werkzeug/formparser.py,sha256=mUuCwjzjb8_E4RzrAT2AioLuZSYpqR1KXTK6LScRYzA,21722
werkzeug/http.py,sha256=RQg4MJuhRv2isNRiEh__Phh09ebpfT3Kuu_GfrZ54_c,40079
werkzeug/local.py,sha256=QdQhWV5L8p1Y1CJ1CDStwxaUs24SuN5aebHwjVD08C8,14553
werkzeug/posixemulation.py,sha256=xEF2Bxc-vUCPkiu4IbfWVd3LW7DROYAT-ExW6THqyzw,3519
werkzeug/routing.py,sha256=2JVtdSgxKGeANy4Z_FP-dKESvKtkYGCZ1J2fARCLGCY,67214
werkzeug/script.py,sha256=DwaVDcXdaOTffdNvlBdLitxWXjKaRVT32VbhDtljFPY,11365
werkzeug/security.py,sha256=0m107exslz4QJLWQCpfQJ04z3re4eGHVggRvrQVAdWc,9193
werkzeug/serving.py,sha256=A0flnIJHufdn2QJ9oeuHfrXwP3LzP8fn3rNW6hbxKUg,31926
werkzeug/test.py,sha256=XmECSmnpASiYQTct4oMiWr0LT5jHWCtKqnpYKZd2ui8,36100
werkzeug/testapp.py,sha256=3HQRW1sHZKXuAjCvFMet4KXtQG3loYTFnvn6LWt-4zI,9396
werkzeug/urls.py,sha256=dUeLg2IeTm0WLmSvFeD4hBZWGdOs-uHudR5-t8n9zPo,36771
werkzeug/useragents.py,sha256=BhYMf4cBTHyN4U0WsQedePIocmNlH_34C-UwqSThGCc,5865
werkzeug/utils.py,sha256=BrY1j0DHQ8RTb0K1StIobKuMJhN9SQQkWEARbrh2qpk,22972
werkzeug/websocket.py,sha256=PpSeDxXD_0UsPAa5hQhQNM6mxibeUgn8lA8eRqiS0vM,11344
werkzeug/wrappers.py,sha256=kbyL_aFjxELwPgMwfNCYjKu-CR6kNkh-oO8wv3GXbk8,84511
werkzeug/wsgi.py,sha256=1Nob-aeChWQf7MsiicO8RZt6J90iRzEcik44ev9Qu8s,49347
werkzeug/contrib/__init__.py,sha256=f7PfttZhbrImqpr5Ezre8CXgwvcGUJK7zWNpO34WWrw,623
werkzeug/contrib/atom.py,sha256=qqfJcfIn2RYY-3hO3Oz0aLq9YuNubcPQ_KZcNsDwVJo,15575
werkzeug/contrib/cache.py,sha256=xBImHNj09BmX_7kC5NUCx8f_l4L8_O7zi0jCL21UZKE,32163
werkzeug/contrib/fixers.py,sha256=gR06T-w71ur-tHQ_31kP_4jpOncPJ4Wc1dOqTvYusr8,10179
werkzeug/contrib/iterio.py,sha256=RlqDvGhz0RneTpzE8dVc-yWCUv4nkPl1jEc_EDp2fH0,10814
werkzeug/contrib/jsrouting.py,sha256=QTmgeDoKXvNK02KzXgx9lr3cAH6fAzpwF5bBdPNvJPs,8564
werkzeug/contrib/limiter.py,sha256=iS8-ahPZ-JLRnmfIBzxpm7O_s3lPsiDMVWv7llAIDCI,1334
werkzeug/contrib/lint.py,sha256=Mj9NeUN7s4zIUWeQOAVjrmtZIcl3Mm2yDe9BSIr9YGE,12558
werkzeug/contrib/profiler.py,sha256=ISwCWvwVyGpDLRBRpLjo_qUWma6GXYBrTAco4PEQSHY,5151
werkzeug/contrib/securecookie.py,sha256=uWMyHDHY3lkeBRiCSayGqWkAIy4a7xAbSE_Hln9ecqc,12196
werkzeug/contrib/sessions.py,sha256=39LVNvLbm5JWpbxM79WC2l87MJFbqeISARjwYbkJatw,12577
werkzeug/contrib/testtools.py,sha256=G9xN-qeihJlhExrIZMCahvQOIDxdL9NiX874jiiHFMs,2453
werkzeug/contrib/wrappers.py,sha256=v7OYlz7wQtDlS9fey75UiRZ1IkUWqCpzbhsLy4k14Hw,10398
werkzeug/debug/__init__.py,sha256=uSn9BqCZ5E3ySgpoZtundpROGsn-uYvZtSFiTfAX24M,17452
werkzeug/debug/console.py,sha256=n3-dsKk1TsjnN-u4ZgmuWCU_HO0qw5IA7ttjhyyMM6I,5607
werkzeug/debug/repr.py,sha256=bKqstDYGfECpeLerd48s_hxuqK4b6UWnjMu3d_DHO8I,9340
werkzeug/debug/tbtools.py,sha256=rBudXCmkVdAKIcdhxANxgf09g6kQjJWW9_5bjSpr4OY,18451
werkzeug/debug/shared/FONT_LICENSE,sha256=LwAVEI1oYnvXiNMT9SnCH_TaLCxCpeHziDrMg0gPkAI,4673
werkzeug/debug/shared/console.png,sha256=bxax6RXXlvOij_KeqvSNX0ojJf83YbnZ7my-3Gx9w2A,507
werkzeug/debug/shared/debugger.js,sha256=PKPVYuyO4SX1hkqLOwCLvmIEO5154WatFYaXE-zIfKI,6264
werkzeug/debug/shared/jquery.js,sha256=7LkWEzqTdpEfELxcZZlS6wAx5Ff13zZ83lYO2_ujj7g,95957
werkzeug/debug/shared/less.png,sha256=-4-kNRaXJSONVLahrQKUxMwXGm9R4OnZ9SxDGpHlIR4,191
werkzeug/debug/shared/more.png,sha256=GngN7CioHQoV58rH6ojnkYi8c_qED2Aka5FO5UXrReY,200
werkzeug/debug/shared/source.png,sha256=RoGcBTE4CyCB85GBuDGTFlAnUqxwTBiIfDqW15EpnUQ,818
werkzeug/debug/shared/style.css,sha256=IEO0PC2pWmh2aEyGCaN--txuWsRCliuhlbEhPDFwh0A,6270
werkzeug/debug/shared/ubuntu.ttf,sha256=1eaHFyepmy4FyDvjLVzpITrGEBu_CZYY94jE0nED1c0,70220
Werkzeug-0.14.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
werkzeug/contrib/__pycache__/atom.cpython-36.pyc,,
werkzeug/contrib/__pycache__/cache.cpython-36.pyc,,
werkzeug/contrib/__pycache__/fixers.cpython-36.pyc,,
werkzeug/contrib/__pycache__/iterio.cpython-36.pyc,,
werkzeug/contrib/__pycache__/jsrouting.cpython-36.pyc,,
werkzeug/contrib/__pycache__/limiter.cpython-36.pyc,,
werkzeug/contrib/__pycache__/lint.cpython-36.pyc,,
werkzeug/contrib/__pycache__/profiler.cpython-36.pyc,,
werkzeug/contrib/__pycache__/securecookie.cpython-36.pyc,,
werkzeug/contrib/__pycache__/sessions.cpython-36.pyc,,
werkzeug/contrib/__pycache__/testtools.cpython-36.pyc,,
werkzeug/contrib/__pycache__/wrappers.cpython-36.pyc,,
werkzeug/contrib/__pycache__/__init__.cpython-36.pyc,,
werkzeug/debug/__pycache__/console.cpython-36.pyc,,
werkzeug/debug/__pycache__/repr.cpython-36.pyc,,
werkzeug/debug/__pycache__/tbtools.cpython-36.pyc,,
werkzeug/debug/__pycache__/__init__.cpython-36.pyc,,
werkzeug/__pycache__/datastructures.cpython-36.pyc,,
werkzeug/__pycache__/exceptions.cpython-36.pyc,,
werkzeug/__pycache__/filesystem.cpython-36.pyc,,
werkzeug/__pycache__/formparser.cpython-36.pyc,,
werkzeug/__pycache__/http.cpython-36.pyc,,
werkzeug/__pycache__/local.cpython-36.pyc,,
werkzeug/__pycache__/posixemulation.cpython-36.pyc,,
werkzeug/__pycache__/routing.cpython-36.pyc,,
werkzeug/__pycache__/script.cpython-36.pyc,,
werkzeug/__pycache__/security.cpython-36.pyc,,
werkzeug/__pycache__/serving.cpython-36.pyc,,
werkzeug/__pycache__/test.cpython-36.pyc,,
werkzeug/__pycache__/testapp.cpython-36.pyc,,
werkzeug/__pycache__/urls.cpython-36.pyc,,
werkzeug/__pycache__/useragents.cpython-36.pyc,,
werkzeug/__pycache__/utils.cpython-36.pyc,,
werkzeug/__pycache__/websocket.cpython-36.pyc,,
werkzeug/__pycache__/wrappers.cpython-36.pyc,,
werkzeug/__pycache__/wsgi.cpython-36.pyc,,
werkzeug/__pycache__/_compat.cpython-36.pyc,,
werkzeug/__pycache__/_internal.cpython-36.pyc,,
werkzeug/__pycache__/_reloader.cpython-36.pyc,,
werkzeug/__pycache__/__init__.cpython-36.pyc,,

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save