diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1f78dd3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,182 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+# This is especially recommended for binary packages to ensure reproducibility, and is more
+# commonly ignored for libraries.
+# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# pdm
+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+# in version control.
+# https://pdm.fming.dev/#use-with-ide
+.pdm.toml
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
+# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
+# and can be added to the global gitignore or merged into this file. For a more nuclear
+# option (not recommended) you can uncomment the following to ignore the entire idea folder.
+#.idea/
+
+
+# Swap
+[._]*.s[a-v][a-z]
+!*.svg # comment out if you don't need vector files
+[._]*.sw[a-p]
+[._]s[a-rt-v][a-z]
+[._]ss[a-gi-z]
+[._]sw[a-p]
+
+# Session
+Session.vim
+Sessionx.vim
+
+# Temporary
+.netrwhist
+*~
+# Auto-generated tag files
+tags
+# Persistent undo
+[._]*.un~
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/README.md b/README.md
index 53634bd..2ace04d 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,7 @@
-# Project Overview
+## How run?
+`python3 main.py`
-This program contains both front-end and back-end code for a bookstore app with a simple graphical user interface (**GUI**)
-built with [**Tkinter library**](https://docs.python.org/3/library/tk.html). While I personally might not choose Tkinter if I were to build a real-world app with modern UI,
-Tkinter serves me well in terms of getting me familiar with how to connect to databases(**SQLite** in this case), manipulatie data, and
-reflect the changes on the front end with Python.
+## Screenshot
+
-The program supports all 4 essentail CRUD functionalities and I also manage to package the program into a standalone executable file for production/distribution
-using **py2app** library by following the tutorial [here](https://www.metachris.com/2015/11/create-standalone-mac-os-x-applications-with-python-and-py2app/).
-
-For the standalone executable, please see the **app folder** and look for file named **frontend** inside folder **dist**.
-
-
-# Screenshot
-
-
-
-
-
-
-# Author
-
-[@Daniel Huang](https://www.linkedin.com/in/daniel-huang-443546115/)
diff --git a/__pycache__/backend.cpython-36.pyc b/__pycache__/backend.cpython-36.pyc
deleted file mode 100644
index b54d8c3..0000000
Binary files a/__pycache__/backend.cpython-36.pyc and /dev/null differ
diff --git a/__pycache__/frontend.cpython-36.pyc b/__pycache__/frontend.cpython-36.pyc
deleted file mode 100644
index 9dcb034..0000000
Binary files a/__pycache__/frontend.cpython-36.pyc and /dev/null differ
diff --git a/app/backend.py b/app/backend.py
index ca63d29..1ac2905 100644
--- a/app/backend.py
+++ b/app/backend.py
@@ -1,53 +1,142 @@
import sqlite3
-def connect():
- conn = sqlite3.connect("books.db")
- cur = conn.cursor()
- cur.execute("CREATE TABLE IF NOT EXISTS book (id INTEGER PRIMARY KEY, title TEXT, "
- "author TEXT, year INTEGER, isbn INTEGER)")
- conn.commit()
- conn.close()
-
-def insert(title, author, year, isbn):
- conn = sqlite3.connect("books.db")
- cur = conn.cursor()
- #the NULL parameter is for the auto-incremented id
- cur.execute("INSERT INTO book VALUES(NULL,?,?,?,?)", (title,author,year,isbn))
- conn.commit()
- conn.close()
-
-def view():
- conn = sqlite3.connect("books.db")
- cur = conn.cursor()
- cur.execute("SELECT * FROM book")
- rows = cur.fetchall()
- conn.close()
- return rows
-
-def search(title="", author="", year="", isbn=""):
- conn = sqlite3.connect("books.db")
- cur = conn.cursor()
- cur.execute("SELECT * FROM book WHERE title = ? OR author = ? OR year = ? "
- "OR isbn = ?", (title, author, year, isbn))
- rows = cur.fetchall()
- conn.close()
- return rows
-
-def delete(id):
- conn = sqlite3.connect("books.db")
- cur = conn.cursor()
- cur.execute("DELETE FROM book WHERE id = ?", (id,))
- conn.commit()
- conn.close()
-
-def update(id, title, author, year, isbn):
- conn = sqlite3.connect("books.db")
- cur = conn.cursor()
- cur.execute("UPDATE book SET title = ?, author = ?, year = ?, isbn = ? WHERE id = ?", (title, author, year, isbn, id))
- conn.commit()
- conn.close()
-
-connect()
-#insert("another novel", "James W.", 2017, 1234)
-#update(2, title = "new book", author= "DH", year= 2005, isbn= 5555)
-print(view())
+
+class Backend:
+ """
+ Provide functionality to manage registers.
+ """
+
+ def __init__(self, database_name: str) -> None:
+ """
+ Parameters
+ ----------
+ database_name : str
+ Path where database will be stored.
+ """
+ self.database_name = database_name
+ with sqlite3.connect(self.database_name) as connection:
+ connection.execute(
+ """
+ CREATE TABLE IF NOT EXISTS book (
+ id INTEGER PRIMARY KEY,
+ title TEXT,
+ author TEXT,
+ year INTEGER default 0,
+ isbn TEXT
+ )"""
+ )
+
+ def insert(self, title: str, author: str, year: int, isbn: str) -> None:
+ """
+ Insert a new register.
+
+ Parameters
+ ----------
+ title : str
+ book title.
+
+ author : str
+ book author.
+
+ year : int
+ book year.
+
+ isbn : str
+ book isbn.
+ """
+ with sqlite3.connect(self.database_name) as connection:
+ connection.execute(
+ 'INSERT INTO book VALUES(NULL,?,?,?,?)',
+ (title, author, year, isbn),
+ )
+
+ def view(self) -> None:
+ """
+ Get all registers.
+
+ Returns
+ -------
+ list
+ All registers stored.
+ """
+ with sqlite3.connect(self.database_name) as connection:
+ cursor = connection.execute('SELECT * FROM book')
+ rows = cursor.fetchall()
+
+ return rows
+
+ def search(
+ self, title: str = '', author: str = '', year: int = 0, isbn: str = ''
+ ) -> None:
+ """
+ Search for a specific book.
+
+ Parameters
+ ----------
+ title : str
+ book title.
+
+ author : str
+ book author.
+
+ year : str
+ book year.
+
+ isbn : str
+ book isbn.
+
+ Returns
+ -------
+ list
+ All registers finded.
+ """
+ with sqlite3.connect(self.database_name) as connection:
+ cursor = connection.execute(
+ 'SELECT * FROM book WHERE title like ? and author like ? and year like ? and isbn like ?',
+ (title + '%', author + '%', year + '%', isbn + '%'),
+ )
+ rows = cursor.fetchall()
+
+ return rows
+
+ def delete(self, primary_key: int) -> None:
+ """
+ Delete a specific register.
+
+ Parameters
+ ----------
+ primary_key : int
+ Register id.
+ """
+ with sqlite3.connect(self.database_name) as connection:
+ connection.execute('DELETE FROM book WHERE id = ?', (primary_key,))
+
+ def update(
+ self, primary_key: int, title: str, author: str, year: int, isbn: str
+ ) -> None:
+ """
+ Update a specific register.
+
+ Parameters
+ ----------
+ primary_key : int
+ Register id.
+
+ title : str
+ new book title.
+
+ author : str
+ new book author.
+
+ year : str
+ new book year.
+
+ isbn : str
+ new book isbn.
+
+ """
+ with sqlite3.connect(self.database_name) as connection:
+ connection.execute(
+ 'UPDATE book SET title = ?, author = ?, year = ?, isbn = ? WHERE id = ?',
+ (title, author, year, isbn, primary_key),
+ )
diff --git a/app/books.db b/app/books.db
index 0e9a58b..537246e 100644
Binary files a/app/books.db and b/app/books.db differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/__future__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/__future__.pyc
deleted file mode 100644
index 13b3f48..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/__future__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_bootlocale.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_bootlocale.pyc
deleted file mode 100644
index bf6b836..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_bootlocale.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_collections_abc.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_collections_abc.pyc
deleted file mode 100644
index 2b13ecc..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_collections_abc.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_compat_pickle.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_compat_pickle.pyc
deleted file mode 100644
index 8b90bab..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_compat_pickle.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_compression.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_compression.pyc
deleted file mode 100644
index 64877bc..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_compression.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_dummy_thread.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_dummy_thread.pyc
deleted file mode 100644
index 38d9416..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_dummy_thread.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_osx_support.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_osx_support.pyc
deleted file mode 100644
index 8fec397..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_osx_support.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_pydecimal.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_pydecimal.pyc
deleted file mode 100644
index 26ab39c..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_pydecimal.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_strptime.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_strptime.pyc
deleted file mode 100644
index ff6a8fe..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_strptime.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_threading_local.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_threading_local.pyc
deleted file mode 100644
index 0a06cea..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_threading_local.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_weakrefset.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_weakrefset.pyc
deleted file mode 100644
index 5202a08..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/_weakrefset.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/abc.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/abc.pyc
deleted file mode 100644
index 56e2789..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/abc.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/argparse.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/argparse.pyc
deleted file mode 100644
index a13d25e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/argparse.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ast.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ast.pyc
deleted file mode 100644
index 6133b16..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ast.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/backend.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/backend.pyc
deleted file mode 100644
index 841dae0..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/backend.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/base64.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/base64.pyc
deleted file mode 100644
index 7877086..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/base64.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/bdb.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/bdb.pyc
deleted file mode 100644
index bfc278a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/bdb.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/bisect.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/bisect.pyc
deleted file mode 100644
index c843711..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/bisect.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/bz2.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/bz2.pyc
deleted file mode 100644
index 70a5a32..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/bz2.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/calendar.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/calendar.pyc
deleted file mode 100644
index f3f3a1f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/calendar.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/cgi.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/cgi.pyc
deleted file mode 100644
index b0caf74..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/cgi.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/cmd.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/cmd.pyc
deleted file mode 100644
index 93de5dd..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/cmd.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/code.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/code.pyc
deleted file mode 100644
index d049896..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/code.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/codecs.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/codecs.pyc
deleted file mode 100644
index a2268b7..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/codecs.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/codeop.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/codeop.pyc
deleted file mode 100644
index ece26b1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/codeop.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/collections/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/collections/__init__.pyc
deleted file mode 100644
index 405bea3..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/collections/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/collections/abc.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/collections/abc.pyc
deleted file mode 100644
index 3df20a9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/collections/abc.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/__init__.pyc
deleted file mode 100644
index c382253..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/__init__.pyc
deleted file mode 100644
index f7b47bf..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/_base.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/_base.pyc
deleted file mode 100644
index 58fd23a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/_base.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/process.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/process.pyc
deleted file mode 100644
index c9f7ce1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/process.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/thread.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/thread.pyc
deleted file mode 100644
index 57c9da1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/concurrent/futures/thread.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/configparser.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/configparser.pyc
deleted file mode 100644
index de944ea..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/configparser.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/contextlib.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/contextlib.pyc
deleted file mode 100644
index 85a6ada..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/contextlib.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/copy.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/copy.pyc
deleted file mode 100644
index 9d83eff..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/copy.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/copyreg.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/copyreg.pyc
deleted file mode 100644
index d2a8814..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/copyreg.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/__init__.pyc
deleted file mode 100644
index b81fb00..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/_endian.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/_endian.pyc
deleted file mode 100644
index 9f696b7..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/_endian.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/README.ctypes b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/README.ctypes
deleted file mode 100644
index 2866e9f..0000000
--- a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/README.ctypes
+++ /dev/null
@@ -1,7 +0,0 @@
-Files in this directory come from Bob Ippolito's py2app.
-
-License: Any components of the py2app suite may be distributed under
-the MIT or PSF open source licenses.
-
-This is version 1.0, SVN revision 789, from 2006/01/25.
-The main repository is http://svn.red-bean.com/bob/macholib/trunk/macholib/
\ No newline at end of file
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/__init__.pyc
deleted file mode 100644
index b4ab582..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/dyld.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/dyld.pyc
deleted file mode 100644
index 15f822a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/dyld.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/dylib.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/dylib.pyc
deleted file mode 100644
index 4a9d6eb..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/dylib.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/fetch_macholib b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/fetch_macholib
deleted file mode 100644
index e6d6a22..0000000
--- a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/fetch_macholib
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-svn export --force http://svn.red-bean.com/bob/macholib/trunk/macholib/ .
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/fetch_macholib.bat b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/fetch_macholib.bat
deleted file mode 100644
index f474d5c..0000000
--- a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/fetch_macholib.bat
+++ /dev/null
@@ -1 +0,0 @@
-svn export --force http://svn.red-bean.com/bob/macholib/trunk/macholib/ .
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/framework.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/framework.pyc
deleted file mode 100644
index b80e1b5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ctypes/macholib/framework.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/datetime.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/datetime.pyc
deleted file mode 100644
index b776203..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/datetime.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/decimal.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/decimal.pyc
deleted file mode 100644
index bed99a4..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/decimal.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/difflib.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/difflib.pyc
deleted file mode 100644
index 2920967..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/difflib.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/dis.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/dis.pyc
deleted file mode 100644
index 0d3780f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/dis.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/README b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/README
deleted file mode 100644
index 408a203..0000000
--- a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/README
+++ /dev/null
@@ -1,13 +0,0 @@
-This directory contains the Distutils package.
-
-There's a full documentation available at:
-
- http://docs.python.org/distutils/
-
-The Distutils-SIG web page is also a good starting point:
-
- http://www.python.org/sigs/distutils-sig/
-
-WARNING : Distutils must remain compatible with 2.3
-
-$Id$
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/__init__.pyc
deleted file mode 100644
index ef693ac..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/_msvccompiler.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/_msvccompiler.pyc
deleted file mode 100644
index df93ebe..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/_msvccompiler.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/archive_util.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/archive_util.pyc
deleted file mode 100644
index 332bb84..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/archive_util.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/ccompiler.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/ccompiler.pyc
deleted file mode 100644
index 7dae6c8..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/ccompiler.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/cmd.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/cmd.pyc
deleted file mode 100644
index 4b66c0e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/cmd.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/__init__.pyc
deleted file mode 100644
index d813095..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/build_ext.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/build_ext.pyc
deleted file mode 100644
index ddbb58a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/build_ext.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/command_template b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/command_template
deleted file mode 100644
index 6106819..0000000
--- a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/command_template
+++ /dev/null
@@ -1,33 +0,0 @@
-"""distutils.command.x
-
-Implements the Distutils 'x' command.
-"""
-
-# created 2000/mm/dd, John Doe
-
-__revision__ = "$Id$"
-
-from distutils.core import Command
-
-
-class x(Command):
-
- # Brief (40-50 characters) description of the command
- description = ""
-
- # List of option tuples: long name, short name (None if no short
- # name), and help string.
- user_options = [('', '',
- ""),
- ]
-
- def initialize_options(self):
- self. = None
- self. = None
- self. = None
-
- def finalize_options(self):
- if self.x is None:
- self.x =
-
- def run(self):
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-10.0-amd64.exe b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-10.0-amd64.exe
deleted file mode 100644
index 6fa0dce..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-10.0-amd64.exe and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-10.0.exe b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-10.0.exe
deleted file mode 100644
index afc3bc6..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-10.0.exe and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-14.0-amd64.exe b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-14.0-amd64.exe
deleted file mode 100644
index 253c2e2..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-14.0-amd64.exe and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-14.0.exe b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-14.0.exe
deleted file mode 100644
index 46f5f35..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-14.0.exe and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-6.0.exe b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-6.0.exe
deleted file mode 100644
index f57c855..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-6.0.exe and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-7.1.exe b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-7.1.exe
deleted file mode 100644
index 1433bc1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-7.1.exe and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-8.0.exe b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-8.0.exe
deleted file mode 100644
index 7403bfa..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-8.0.exe and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-9.0-amd64.exe b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-9.0-amd64.exe
deleted file mode 100644
index 94fbd43..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-9.0-amd64.exe and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-9.0.exe b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-9.0.exe
deleted file mode 100644
index 2ec261f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/command/wininst-9.0.exe and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/config.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/config.pyc
deleted file mode 100644
index 3e9efc9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/config.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/core.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/core.pyc
deleted file mode 100644
index 173e263..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/core.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/debug.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/debug.pyc
deleted file mode 100644
index 5e61bbb..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/debug.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/dep_util.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/dep_util.pyc
deleted file mode 100644
index db316f9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/dep_util.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/dir_util.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/dir_util.pyc
deleted file mode 100644
index 0d6d014..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/dir_util.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/dist.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/dist.pyc
deleted file mode 100644
index b4486df..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/dist.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/errors.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/errors.pyc
deleted file mode 100644
index edd4830..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/errors.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/extension.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/extension.pyc
deleted file mode 100644
index 9239c29..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/extension.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/fancy_getopt.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/fancy_getopt.pyc
deleted file mode 100644
index 5c8b42e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/fancy_getopt.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/file_util.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/file_util.pyc
deleted file mode 100644
index 226522c..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/file_util.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/filelist.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/filelist.pyc
deleted file mode 100644
index dc4a6f2..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/filelist.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/log.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/log.pyc
deleted file mode 100644
index 79b3376..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/log.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/spawn.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/spawn.pyc
deleted file mode 100644
index 988f885..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/spawn.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/sysconfig.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/sysconfig.pyc
deleted file mode 100644
index 3b0ee1a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/sysconfig.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/text_file.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/text_file.pyc
deleted file mode 100644
index cd0d64b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/text_file.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/util.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/util.pyc
deleted file mode 100644
index 894e0a0..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/util.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/version.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/version.pyc
deleted file mode 100644
index 03e6842..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/version.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/versionpredicate.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/versionpredicate.pyc
deleted file mode 100644
index adcdd16..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/distutils/versionpredicate.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/doctest.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/doctest.pyc
deleted file mode 100644
index b810f92..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/doctest.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/dummy_threading.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/dummy_threading.pyc
deleted file mode 100644
index 439dbc0..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/dummy_threading.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/__init__.pyc
deleted file mode 100644
index 4f7a50a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_encoded_words.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_encoded_words.pyc
deleted file mode 100644
index dcede9a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_encoded_words.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_header_value_parser.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_header_value_parser.pyc
deleted file mode 100644
index 7da9ad8..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_header_value_parser.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_parseaddr.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_parseaddr.pyc
deleted file mode 100644
index d35dee9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_parseaddr.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_policybase.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_policybase.pyc
deleted file mode 100644
index 532c224..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/_policybase.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/architecture.rst b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/architecture.rst
deleted file mode 100644
index fcd10bd..0000000
--- a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/architecture.rst
+++ /dev/null
@@ -1,216 +0,0 @@
-:mod:`email` Package Architecture
-=================================
-
-Overview
---------
-
-The email package consists of three major components:
-
- Model
- An object structure that represents an email message, and provides an
- API for creating, querying, and modifying a message.
-
- Parser
- Takes a sequence of characters or bytes and produces a model of the
- email message represented by those characters or bytes.
-
- Generator
- Takes a model and turns it into a sequence of characters or bytes. The
- sequence can either be intended for human consumption (a printable
- unicode string) or bytes suitable for transmission over the wire. In
- the latter case all data is properly encoded using the content transfer
- encodings specified by the relevant RFCs.
-
-Conceptually the package is organized around the model. The model provides both
-"external" APIs intended for use by application programs using the library,
-and "internal" APIs intended for use by the Parser and Generator components.
-This division is intentionally a bit fuzzy; the API described by this
-documentation is all a public, stable API. This allows for an application
-with special needs to implement its own parser and/or generator.
-
-In addition to the three major functional components, there is a third key
-component to the architecture:
-
- Policy
- An object that specifies various behavioral settings and carries
- implementations of various behavior-controlling methods.
-
-The Policy framework provides a simple and convenient way to control the
-behavior of the library, making it possible for the library to be used in a
-very flexible fashion while leveraging the common code required to parse,
-represent, and generate message-like objects. For example, in addition to the
-default :rfc:`5322` email message policy, we also have a policy that manages
-HTTP headers in a fashion compliant with :rfc:`2616`. Individual policy
-controls, such as the maximum line length produced by the generator, can also
-be controlled individually to meet specialized application requirements.
-
-
-The Model
----------
-
-The message model is implemented by the :class:`~email.message.Message` class.
-The model divides a message into the two fundamental parts discussed by the
-RFC: the header section and the body. The `Message` object acts as a
-pseudo-dictionary of named headers. Its dictionary interface provides
-convenient access to individual headers by name. However, all headers are kept
-internally in an ordered list, so that the information about the order of the
-headers in the original message is preserved.
-
-The `Message` object also has a `payload` that holds the body. A `payload` can
-be one of two things: data, or a list of `Message` objects. The latter is used
-to represent a multipart MIME message. Lists can be nested arbitrarily deeply
-in order to represent the message, with all terminal leaves having non-list
-data payloads.
-
-
-Message Lifecycle
------------------
-
-The general lifecycle of a message is:
-
- Creation
- A `Message` object can be created by a Parser, or it can be
- instantiated as an empty message by an application.
-
- Manipulation
- The application may examine one or more headers, and/or the
- payload, and it may modify one or more headers and/or
- the payload. This may be done on the top level `Message`
- object, or on any sub-object.
-
- Finalization
- The Model is converted into a unicode or binary stream,
- or the model is discarded.
-
-
-
-Header Policy Control During Lifecycle
---------------------------------------
-
-One of the major controls exerted by the Policy is the management of headers
-during the `Message` lifecycle. Most applications don't need to be aware of
-this.
-
-A header enters the model in one of two ways: via a Parser, or by being set to
-a specific value by an application program after the Model already exists.
-Similarly, a header exits the model in one of two ways: by being serialized by
-a Generator, or by being retrieved from a Model by an application program. The
-Policy object provides hooks for all four of these pathways.
-
-The model storage for headers is a list of (name, value) tuples.
-
-The Parser identifies headers during parsing, and passes them to the
-:meth:`~email.policy.Policy.header_source_parse` method of the Policy. The
-result of that method is the (name, value) tuple to be stored in the model.
-
-When an application program supplies a header value (for example, through the
-`Message` object `__setitem__` interface), the name and the value are passed to
-the :meth:`~email.policy.Policy.header_store_parse` method of the Policy, which
-returns the (name, value) tuple to be stored in the model.
-
-When an application program retrieves a header (through any of the dict or list
-interfaces of `Message`), the name and value are passed to the
-:meth:`~email.policy.Policy.header_fetch_parse` method of the Policy to
-obtain the value returned to the application.
-
-When a Generator requests a header during serialization, the name and value are
-passed to the :meth:`~email.policy.Policy.fold` method of the Policy, which
-returns a string containing line breaks in the appropriate places. The
-:meth:`~email.policy.Policy.cte_type` Policy control determines whether or
-not Content Transfer Encoding is performed on the data in the header. There is
-also a :meth:`~email.policy.Policy.binary_fold` method for use by generators
-that produce binary output, which returns the folded header as binary data,
-possibly folded at different places than the corresponding string would be.
-
-
-Handling Binary Data
---------------------
-
-In an ideal world all message data would conform to the RFCs, meaning that the
-parser could decode the message into the idealized unicode message that the
-sender originally wrote. In the real world, the email package must also be
-able to deal with badly formatted messages, including messages containing
-non-ASCII characters that either have no indicated character set or are not
-valid characters in the indicated character set.
-
-Since email messages are *primarily* text data, and operations on message data
-are primarily text operations (except for binary payloads of course), the model
-stores all text data as unicode strings. Un-decodable binary inside text
-data is handled by using the `surrogateescape` error handler of the ASCII
-codec. As with the binary filenames the error handler was introduced to
-handle, this allows the email package to "carry" the binary data received
-during parsing along until the output stage, at which time it is regenerated
-in its original form.
-
-This carried binary data is almost entirely an implementation detail. The one
-place where it is visible in the API is in the "internal" API. A Parser must
-do the `surrogateescape` encoding of binary input data, and pass that data to
-the appropriate Policy method. The "internal" interface used by the Generator
-to access header values preserves the `surrogateescaped` bytes. All other
-interfaces convert the binary data either back into bytes or into a safe form
-(losing information in some cases).
-
-
-Backward Compatibility
-----------------------
-
-The :class:`~email.policy.Policy.Compat32` Policy provides backward
-compatibility with version 5.1 of the email package. It does this via the
-following implementation of the four+1 Policy methods described above:
-
-header_source_parse
- Splits the first line on the colon to obtain the name, discards any spaces
- after the colon, and joins the remainder of the line with all of the
- remaining lines, preserving the linesep characters to obtain the value.
- Trailing carriage return and/or linefeed characters are stripped from the
- resulting value string.
-
-header_store_parse
- Returns the name and value exactly as received from the application.
-
-header_fetch_parse
- If the value contains any `surrogateescaped` binary data, return the value
- as a :class:`~email.header.Header` object, using the character set
- `unknown-8bit`. Otherwise just returns the value.
-
-fold
- Uses :class:`~email.header.Header`'s folding to fold headers in the
- same way the email5.1 generator did.
-
-binary_fold
- Same as fold, but encodes to 'ascii'.
-
-
-New Algorithm
--------------
-
-header_source_parse
- Same as legacy behavior.
-
-header_store_parse
- Same as legacy behavior.
-
-header_fetch_parse
- If the value is already a header object, returns it. Otherwise, parses the
- value using the new parser, and returns the resulting object as the value.
- `surrogateescaped` bytes get turned into unicode unknown character code
- points.
-
-fold
- Uses the new header folding algorithm, respecting the policy settings.
- surrogateescaped bytes are encoded using the ``unknown-8bit`` charset for
- ``cte_type=7bit`` or ``8bit``. Returns a string.
-
- At some point there will also be a ``cte_type=unicode``, and for that
- policy fold will serialize the idealized unicode message with RFC-like
- folding, converting any surrogateescaped bytes into the unicode
- unknown character glyph.
-
-binary_fold
- Uses the new header folding algorithm, respecting the policy settings.
- surrogateescaped bytes are encoded using the `unknown-8bit` charset for
- ``cte_type=7bit``, and get turned back into bytes for ``cte_type=8bit``.
- Returns bytes.
-
- At some point there will also be a ``cte_type=unicode``, and for that
- policy binary_fold will serialize the message according to :rfc:``5335``.
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/base64mime.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/base64mime.pyc
deleted file mode 100644
index a65775b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/base64mime.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/charset.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/charset.pyc
deleted file mode 100644
index b6bf33e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/charset.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/contentmanager.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/contentmanager.pyc
deleted file mode 100644
index faf8a96..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/contentmanager.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/encoders.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/encoders.pyc
deleted file mode 100644
index 57ea8e9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/encoders.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/errors.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/errors.pyc
deleted file mode 100644
index fc65b2a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/errors.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/feedparser.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/feedparser.pyc
deleted file mode 100644
index f143796..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/feedparser.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/generator.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/generator.pyc
deleted file mode 100644
index b0ab4ca..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/generator.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/header.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/header.pyc
deleted file mode 100644
index 139b953..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/header.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/headerregistry.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/headerregistry.pyc
deleted file mode 100644
index 3d67cf7..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/headerregistry.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/iterators.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/iterators.pyc
deleted file mode 100644
index b243cd5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/iterators.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/message.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/message.pyc
deleted file mode 100644
index 6843117..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/message.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/parser.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/parser.pyc
deleted file mode 100644
index a5b05d1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/parser.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/policy.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/policy.pyc
deleted file mode 100644
index c5bf84a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/policy.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/quoprimime.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/quoprimime.pyc
deleted file mode 100644
index bbfab0d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/quoprimime.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/utils.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/utils.pyc
deleted file mode 100644
index 73599f8..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/email/utils.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/__init__.pyc
deleted file mode 100644
index 837f9e1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/aliases.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/aliases.pyc
deleted file mode 100644
index d5735cb..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/aliases.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/ascii.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/ascii.pyc
deleted file mode 100644
index 0579240..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/ascii.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/base64_codec.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/base64_codec.pyc
deleted file mode 100644
index 9eba75a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/base64_codec.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/big5.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/big5.pyc
deleted file mode 100644
index 820f95a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/big5.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/big5hkscs.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/big5hkscs.pyc
deleted file mode 100644
index a7ca766..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/big5hkscs.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/bz2_codec.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/bz2_codec.pyc
deleted file mode 100644
index 4dacae9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/bz2_codec.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/charmap.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/charmap.pyc
deleted file mode 100644
index e0bdc59..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/charmap.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp037.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp037.pyc
deleted file mode 100644
index ee3e9bf..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp037.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1006.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1006.pyc
deleted file mode 100644
index e345869..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1006.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1026.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1026.pyc
deleted file mode 100644
index f7d4cfd..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1026.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1125.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1125.pyc
deleted file mode 100644
index 0e6a7e6..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1125.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1140.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1140.pyc
deleted file mode 100644
index 7865324..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1140.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1250.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1250.pyc
deleted file mode 100644
index 0984923..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1250.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1251.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1251.pyc
deleted file mode 100644
index a470434..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1251.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1252.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1252.pyc
deleted file mode 100644
index 5ba7a8a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1252.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1253.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1253.pyc
deleted file mode 100644
index 3e0bad1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1253.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1254.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1254.pyc
deleted file mode 100644
index 4835401..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1254.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1255.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1255.pyc
deleted file mode 100644
index 48ea30e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1255.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1256.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1256.pyc
deleted file mode 100644
index b8940a4..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1256.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1257.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1257.pyc
deleted file mode 100644
index 4b943dc..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1257.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1258.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1258.pyc
deleted file mode 100644
index 1b99d3e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp1258.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp273.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp273.pyc
deleted file mode 100644
index 0c9092b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp273.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp424.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp424.pyc
deleted file mode 100644
index 97d1da6..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp424.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp437.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp437.pyc
deleted file mode 100644
index f4cb2f1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp437.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp500.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp500.pyc
deleted file mode 100644
index 738603b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp500.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp65001.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp65001.pyc
deleted file mode 100644
index 9bb4239..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp65001.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp720.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp720.pyc
deleted file mode 100644
index dfdb179..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp720.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp737.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp737.pyc
deleted file mode 100644
index bbaf39a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp737.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp775.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp775.pyc
deleted file mode 100644
index 1f182a7..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp775.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp850.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp850.pyc
deleted file mode 100644
index dc421eb..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp850.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp852.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp852.pyc
deleted file mode 100644
index 02d0927..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp852.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp855.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp855.pyc
deleted file mode 100644
index 377f371..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp855.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp856.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp856.pyc
deleted file mode 100644
index 90bf6cb..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp856.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp857.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp857.pyc
deleted file mode 100644
index 0489d49..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp857.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp858.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp858.pyc
deleted file mode 100644
index a3ecb72..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp858.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp860.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp860.pyc
deleted file mode 100644
index a8fec6b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp860.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp861.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp861.pyc
deleted file mode 100644
index 756cb09..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp861.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp862.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp862.pyc
deleted file mode 100644
index a1fbc75..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp862.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp863.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp863.pyc
deleted file mode 100644
index 4e57051..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp863.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp864.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp864.pyc
deleted file mode 100644
index 7029419..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp864.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp865.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp865.pyc
deleted file mode 100644
index ea2d957..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp865.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp866.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp866.pyc
deleted file mode 100644
index 612668c..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp866.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp869.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp869.pyc
deleted file mode 100644
index 7b28186..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp869.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp874.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp874.pyc
deleted file mode 100644
index 72047d2..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp874.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp875.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp875.pyc
deleted file mode 100644
index 7d7c648..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp875.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp932.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp932.pyc
deleted file mode 100644
index 6e17f86..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp932.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp949.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp949.pyc
deleted file mode 100644
index 6d85ee9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp949.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp950.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp950.pyc
deleted file mode 100644
index e5fea65..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/cp950.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_jis_2004.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_jis_2004.pyc
deleted file mode 100644
index 4bd0c75..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_jis_2004.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_jisx0213.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_jisx0213.pyc
deleted file mode 100644
index d46cf9b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_jisx0213.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_jp.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_jp.pyc
deleted file mode 100644
index a26dcf6..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_jp.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_kr.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_kr.pyc
deleted file mode 100644
index 1532353..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/euc_kr.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/gb18030.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/gb18030.pyc
deleted file mode 100644
index 67fbc76..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/gb18030.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/gb2312.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/gb2312.pyc
deleted file mode 100644
index d656f41..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/gb2312.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/gbk.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/gbk.pyc
deleted file mode 100644
index 9cfa0eb..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/gbk.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/hex_codec.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/hex_codec.pyc
deleted file mode 100644
index 337cedd..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/hex_codec.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/hp_roman8.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/hp_roman8.pyc
deleted file mode 100644
index 02de0dc..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/hp_roman8.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/hz.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/hz.pyc
deleted file mode 100644
index cefcf90..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/hz.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/idna.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/idna.pyc
deleted file mode 100644
index 4e7604f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/idna.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp.pyc
deleted file mode 100644
index e27389a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_1.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_1.pyc
deleted file mode 100644
index f8ae3ab..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_1.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_2.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_2.pyc
deleted file mode 100644
index 3424b76..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_2.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_2004.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_2004.pyc
deleted file mode 100644
index 8697758..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_2004.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_3.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_3.pyc
deleted file mode 100644
index e25a65f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_3.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_ext.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_ext.pyc
deleted file mode 100644
index 0fb1961..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_jp_ext.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_kr.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_kr.pyc
deleted file mode 100644
index f563357..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso2022_kr.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_1.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_1.pyc
deleted file mode 100644
index 474f87c..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_1.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_10.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_10.pyc
deleted file mode 100644
index d4a2948..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_10.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_11.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_11.pyc
deleted file mode 100644
index cb2304e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_11.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_13.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_13.pyc
deleted file mode 100644
index 1f60c8a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_13.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_14.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_14.pyc
deleted file mode 100644
index 708e3c0..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_14.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_15.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_15.pyc
deleted file mode 100644
index 65777fa..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_15.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_16.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_16.pyc
deleted file mode 100644
index b8e49bd..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_16.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_2.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_2.pyc
deleted file mode 100644
index b7a810c..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_2.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_3.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_3.pyc
deleted file mode 100644
index a8f5434..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_3.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_4.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_4.pyc
deleted file mode 100644
index e0d5015..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_4.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_5.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_5.pyc
deleted file mode 100644
index c6aef3f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_5.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_6.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_6.pyc
deleted file mode 100644
index 0c714b5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_6.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_7.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_7.pyc
deleted file mode 100644
index 48fc020..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_7.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_8.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_8.pyc
deleted file mode 100644
index c80ca88..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_8.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_9.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_9.pyc
deleted file mode 100644
index 44ab80f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/iso8859_9.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/johab.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/johab.pyc
deleted file mode 100644
index 5eaad1a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/johab.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/koi8_r.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/koi8_r.pyc
deleted file mode 100644
index d986084..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/koi8_r.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/koi8_t.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/koi8_t.pyc
deleted file mode 100644
index 04764dc..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/koi8_t.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/koi8_u.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/koi8_u.pyc
deleted file mode 100644
index 8af7c17..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/koi8_u.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/kz1048.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/kz1048.pyc
deleted file mode 100644
index a979762..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/kz1048.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/latin_1.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/latin_1.pyc
deleted file mode 100644
index 270c16c..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/latin_1.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_arabic.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_arabic.pyc
deleted file mode 100644
index 339320c..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_arabic.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_centeuro.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_centeuro.pyc
deleted file mode 100644
index 3c7fe37..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_centeuro.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_croatian.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_croatian.pyc
deleted file mode 100644
index 856036e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_croatian.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_cyrillic.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_cyrillic.pyc
deleted file mode 100644
index e7b3fb0..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_cyrillic.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_farsi.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_farsi.pyc
deleted file mode 100644
index 3a3fe92..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_farsi.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_greek.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_greek.pyc
deleted file mode 100644
index 2019f59..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_greek.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_iceland.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_iceland.pyc
deleted file mode 100644
index c09cca8..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_iceland.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_latin2.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_latin2.pyc
deleted file mode 100644
index 01ef86d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_latin2.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_roman.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_roman.pyc
deleted file mode 100644
index 6d47d63..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_roman.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_romanian.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_romanian.pyc
deleted file mode 100644
index d19c38d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_romanian.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_turkish.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_turkish.pyc
deleted file mode 100644
index 518df0f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mac_turkish.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mbcs.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mbcs.pyc
deleted file mode 100644
index 36f2af5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/mbcs.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/oem.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/oem.pyc
deleted file mode 100644
index ee2d61b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/oem.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/palmos.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/palmos.pyc
deleted file mode 100644
index 1888dd5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/palmos.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/ptcp154.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/ptcp154.pyc
deleted file mode 100644
index ec62388..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/ptcp154.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/punycode.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/punycode.pyc
deleted file mode 100644
index c089902..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/punycode.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/quopri_codec.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/quopri_codec.pyc
deleted file mode 100644
index b337836..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/quopri_codec.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/raw_unicode_escape.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/raw_unicode_escape.pyc
deleted file mode 100644
index 9481ac4..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/raw_unicode_escape.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/rot_13.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/rot_13.pyc
deleted file mode 100644
index 4a736b5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/rot_13.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/shift_jis.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/shift_jis.pyc
deleted file mode 100644
index ab2dab7..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/shift_jis.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/shift_jis_2004.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/shift_jis_2004.pyc
deleted file mode 100644
index 10409ed..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/shift_jis_2004.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/shift_jisx0213.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/shift_jisx0213.pyc
deleted file mode 100644
index 3912e6b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/shift_jisx0213.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/tis_620.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/tis_620.pyc
deleted file mode 100644
index a70f2fe..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/tis_620.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/undefined.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/undefined.pyc
deleted file mode 100644
index 5e1bc9d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/undefined.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/unicode_escape.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/unicode_escape.pyc
deleted file mode 100644
index 41fad20..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/unicode_escape.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/unicode_internal.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/unicode_internal.pyc
deleted file mode 100644
index 949017f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/unicode_internal.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_16.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_16.pyc
deleted file mode 100644
index 0d94a81..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_16.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_16_be.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_16_be.pyc
deleted file mode 100644
index 89bad4a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_16_be.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_16_le.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_16_le.pyc
deleted file mode 100644
index 2649240..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_16_le.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_32.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_32.pyc
deleted file mode 100644
index 84c56cc..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_32.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_32_be.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_32_be.pyc
deleted file mode 100644
index 392eb71..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_32_be.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_32_le.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_32_le.pyc
deleted file mode 100644
index 3fa9ecd..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_32_le.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_7.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_7.pyc
deleted file mode 100644
index ca24b51..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_7.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_8.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_8.pyc
deleted file mode 100644
index 4743c90..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_8.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_8_sig.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_8_sig.pyc
deleted file mode 100644
index 21a47c1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/utf_8_sig.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/uu_codec.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/uu_codec.pyc
deleted file mode 100644
index 6c4c825..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/uu_codec.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/zlib_codec.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/zlib_codec.pyc
deleted file mode 100644
index 83f8cce..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/encodings/zlib_codec.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/enum.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/enum.pyc
deleted file mode 100644
index 5a759f3..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/enum.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/fnmatch.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/fnmatch.pyc
deleted file mode 100644
index 3a98bc7..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/fnmatch.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/functools.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/functools.pyc
deleted file mode 100644
index 6f48387..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/functools.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/genericpath.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/genericpath.pyc
deleted file mode 100644
index 9e9f97f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/genericpath.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/getopt.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/getopt.pyc
deleted file mode 100644
index 7889ff3..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/getopt.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/gettext.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/gettext.pyc
deleted file mode 100644
index 33ef5e6..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/gettext.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/glob.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/glob.pyc
deleted file mode 100644
index ed0adce..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/glob.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/gzip.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/gzip.pyc
deleted file mode 100644
index 775a704..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/gzip.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/hashlib.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/hashlib.pyc
deleted file mode 100644
index 99a92d5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/hashlib.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/heapq.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/heapq.pyc
deleted file mode 100644
index 92e6e15..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/heapq.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/hmac.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/hmac.pyc
deleted file mode 100644
index 574bb54..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/hmac.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/html/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/html/__init__.pyc
deleted file mode 100644
index f865663..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/html/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/html/entities.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/html/entities.pyc
deleted file mode 100644
index fb4e430..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/html/entities.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/http/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/http/__init__.pyc
deleted file mode 100644
index 823fb97..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/http/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/http/client.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/http/client.pyc
deleted file mode 100644
index 6bce031..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/http/client.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/http/server.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/http/server.pyc
deleted file mode 100644
index e39954f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/http/server.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/imp.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/imp.pyc
deleted file mode 100644
index 3e78e30..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/imp.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/__init__.pyc
deleted file mode 100644
index 97a767d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/_bootstrap.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/_bootstrap.pyc
deleted file mode 100644
index 5d8227a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/_bootstrap.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/_bootstrap_external.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/_bootstrap_external.pyc
deleted file mode 100644
index 0e5b559..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/_bootstrap_external.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/abc.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/abc.pyc
deleted file mode 100644
index eb19805..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/abc.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/machinery.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/machinery.pyc
deleted file mode 100644
index d3c9d8e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/machinery.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/util.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/util.pyc
deleted file mode 100644
index edd32db..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/importlib/util.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/inspect.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/inspect.pyc
deleted file mode 100644
index 28d83e1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/inspect.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/io.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/io.pyc
deleted file mode 100644
index ce487ee..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/io.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ipaddress.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ipaddress.pyc
deleted file mode 100644
index fd500af..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ipaddress.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/keyword.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/keyword.pyc
deleted file mode 100644
index d510ef6..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/keyword.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/Grammar.txt b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/Grammar.txt
deleted file mode 100644
index 2abd5ee..0000000
--- a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/Grammar.txt
+++ /dev/null
@@ -1,173 +0,0 @@
-# Grammar for 2to3. This grammar supports Python 2.x and 3.x.
-
-# Note: Changing the grammar specified in this file will most likely
-# require corresponding changes in the parser module
-# (../Modules/parsermodule.c). If you can't make the changes to
-# that module yourself, please co-ordinate the required changes
-# with someone who can; ask around on python-dev for help. Fred
-# Drake will probably be listening there.
-
-# NOTE WELL: You should also follow all the steps listed in PEP 306,
-# "How to Change Python's Grammar"
-
-# Commands for Kees Blom's railroad program
-#diagram:token NAME
-#diagram:token NUMBER
-#diagram:token STRING
-#diagram:token NEWLINE
-#diagram:token ENDMARKER
-#diagram:token INDENT
-#diagram:output\input python.bla
-#diagram:token DEDENT
-#diagram:output\textwidth 20.04cm\oddsidemargin 0.0cm\evensidemargin 0.0cm
-#diagram:rules
-
-# Start symbols for the grammar:
-# file_input is a module or sequence of commands read from an input file;
-# single_input is a single interactive statement;
-# eval_input is the input for the eval() and input() functions.
-# NB: compound_stmt in single_input is followed by extra NEWLINE!
-file_input: (NEWLINE | stmt)* ENDMARKER
-single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
-eval_input: testlist NEWLINE* ENDMARKER
-
-decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
-decorators: decorator+
-decorated: decorators (classdef | funcdef | async_funcdef)
-async_funcdef: ASYNC funcdef
-funcdef: 'def' NAME parameters ['->' test] ':' suite
-parameters: '(' [typedargslist] ')'
-typedargslist: ((tfpdef ['=' test] ',')*
- ('*' [tname] (',' tname ['=' test])* [',' '**' tname] | '**' tname)
- | tfpdef ['=' test] (',' tfpdef ['=' test])* [','])
-tname: NAME [':' test]
-tfpdef: tname | '(' tfplist ')'
-tfplist: tfpdef (',' tfpdef)* [',']
-varargslist: ((vfpdef ['=' test] ',')*
- ('*' [vname] (',' vname ['=' test])* [',' '**' vname] | '**' vname)
- | vfpdef ['=' test] (',' vfpdef ['=' test])* [','])
-vname: NAME
-vfpdef: vname | '(' vfplist ')'
-vfplist: vfpdef (',' vfpdef)* [',']
-
-stmt: simple_stmt | compound_stmt
-simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
-small_stmt: (expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt |
- import_stmt | global_stmt | exec_stmt | assert_stmt)
-expr_stmt: testlist_star_expr (annassign | augassign (yield_expr|testlist) |
- ('=' (yield_expr|testlist_star_expr))*)
-annassign: ':' test ['=' test]
-testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [',']
-augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' |
- '<<=' | '>>=' | '**=' | '//=')
-# For normal and annotated assignments, additional restrictions enforced by the interpreter
-print_stmt: 'print' ( [ test (',' test)* [','] ] |
- '>>' test [ (',' test)+ [','] ] )
-del_stmt: 'del' exprlist
-pass_stmt: 'pass'
-flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt
-break_stmt: 'break'
-continue_stmt: 'continue'
-return_stmt: 'return' [testlist]
-yield_stmt: yield_expr
-raise_stmt: 'raise' [test ['from' test | ',' test [',' test]]]
-import_stmt: import_name | import_from
-import_name: 'import' dotted_as_names
-import_from: ('from' ('.'* dotted_name | '.'+)
- 'import' ('*' | '(' import_as_names ')' | import_as_names))
-import_as_name: NAME ['as' NAME]
-dotted_as_name: dotted_name ['as' NAME]
-import_as_names: import_as_name (',' import_as_name)* [',']
-dotted_as_names: dotted_as_name (',' dotted_as_name)*
-dotted_name: NAME ('.' NAME)*
-global_stmt: ('global' | 'nonlocal') NAME (',' NAME)*
-exec_stmt: 'exec' expr ['in' test [',' test]]
-assert_stmt: 'assert' test [',' test]
-
-compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated | async_stmt
-async_stmt: ASYNC (funcdef | with_stmt | for_stmt)
-if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
-while_stmt: 'while' test ':' suite ['else' ':' suite]
-for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]
-try_stmt: ('try' ':' suite
- ((except_clause ':' suite)+
- ['else' ':' suite]
- ['finally' ':' suite] |
- 'finally' ':' suite))
-with_stmt: 'with' with_item (',' with_item)* ':' suite
-with_item: test ['as' expr]
-with_var: 'as' expr
-# NB compile.c makes sure that the default except clause is last
-except_clause: 'except' [test [(',' | 'as') test]]
-suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
-
-# Backward compatibility cruft to support:
-# [ x for x in lambda: True, lambda: False if x() ]
-# even while also allowing:
-# lambda x: 5 if x else 2
-# (But not a mix of the two)
-testlist_safe: old_test [(',' old_test)+ [',']]
-old_test: or_test | old_lambdef
-old_lambdef: 'lambda' [varargslist] ':' old_test
-
-test: or_test ['if' or_test 'else' test] | lambdef
-or_test: and_test ('or' and_test)*
-and_test: not_test ('and' not_test)*
-not_test: 'not' not_test | comparison
-comparison: expr (comp_op expr)*
-comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not'
-star_expr: '*' expr
-expr: xor_expr ('|' xor_expr)*
-xor_expr: and_expr ('^' and_expr)*
-and_expr: shift_expr ('&' shift_expr)*
-shift_expr: arith_expr (('<<'|'>>') arith_expr)*
-arith_expr: term (('+'|'-') term)*
-term: factor (('*'|'@'|'/'|'%'|'//') factor)*
-factor: ('+'|'-'|'~') factor | power
-power: [AWAIT] atom trailer* ['**' factor]
-atom: ('(' [yield_expr|testlist_gexp] ')' |
- '[' [listmaker] ']' |
- '{' [dictsetmaker] '}' |
- '`' testlist1 '`' |
- NAME | NUMBER | STRING+ | '.' '.' '.')
-listmaker: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
-testlist_gexp: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
-lambdef: 'lambda' [varargslist] ':' test
-trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME
-subscriptlist: subscript (',' subscript)* [',']
-subscript: test | [test] ':' [test] [sliceop]
-sliceop: ':' [test]
-exprlist: (expr|star_expr) (',' (expr|star_expr))* [',']
-testlist: test (',' test)* [',']
-dictsetmaker: ( ((test ':' test | '**' expr)
- (comp_for | (',' (test ':' test | '**' expr))* [','])) |
- ((test | star_expr)
- (comp_for | (',' (test | star_expr))* [','])) )
-
-classdef: 'class' NAME ['(' [arglist] ')'] ':' suite
-
-arglist: argument (',' argument)* [',']
-
-# "test '=' test" is really "keyword '=' test", but we have no such token.
-# These need to be in a single rule to avoid grammar that is ambiguous
-# to our LL(1) parser. Even though 'test' includes '*expr' in star_expr,
-# we explicitly match '*' here, too, to give it proper precedence.
-# Illegal combinations and orderings are blocked in ast.c:
-# multiple (test comp_for) arguments are blocked; keyword unpackings
-# that precede iterable unpackings are blocked; etc.
-argument: ( test [comp_for] |
- test '=' test |
- '**' expr |
- star_expr )
-
-comp_iter: comp_for | comp_if
-comp_for: [ASYNC] 'for' exprlist 'in' testlist_safe [comp_iter]
-comp_if: 'if' old_test [comp_iter]
-
-testlist1: test (',' test)*
-
-# not used in grammar, but may appear in "node" passed from Parser to Compiler
-encoding_decl: NAME
-
-yield_expr: 'yield' [yield_arg]
-yield_arg: 'from' test | testlist
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/Grammar3.6.3.final.0.pickle b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/Grammar3.6.3.final.0.pickle
deleted file mode 100644
index b6cc6b9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/Grammar3.6.3.final.0.pickle and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/PatternGrammar.txt b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/PatternGrammar.txt
deleted file mode 100644
index 36bf814..0000000
--- a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/PatternGrammar.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2006 Google, Inc. All Rights Reserved.
-# Licensed to PSF under a Contributor Agreement.
-
-# A grammar to describe tree matching patterns.
-# Not shown here:
-# - 'TOKEN' stands for any token (leaf node)
-# - 'any' stands for any node (leaf or interior)
-# With 'any' we can still specify the sub-structure.
-
-# The start symbol is 'Matcher'.
-
-Matcher: Alternatives ENDMARKER
-
-Alternatives: Alternative ('|' Alternative)*
-
-Alternative: (Unit | NegatedUnit)+
-
-Unit: [NAME '='] ( STRING [Repeater]
- | NAME [Details] [Repeater]
- | '(' Alternatives ')' [Repeater]
- | '[' Alternatives ']'
- )
-
-NegatedUnit: 'not' (STRING | NAME [Details] | '(' Alternatives ')')
-
-Repeater: '*' | '+' | '{' NUMBER [',' NUMBER] '}'
-
-Details: '<' Alternatives '>'
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/PatternGrammar3.6.3.final.0.pickle b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/PatternGrammar3.6.3.final.0.pickle
deleted file mode 100644
index e027504..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/PatternGrammar3.6.3.final.0.pickle and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/__init__.pyc
deleted file mode 100644
index cf0261a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/btm_matcher.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/btm_matcher.pyc
deleted file mode 100644
index f6c754e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/btm_matcher.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/btm_utils.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/btm_utils.pyc
deleted file mode 100644
index 9c7fb18..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/btm_utils.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/fixer_util.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/fixer_util.pyc
deleted file mode 100644
index 9a0b0f5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/fixer_util.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/patcomp.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/patcomp.pyc
deleted file mode 100644
index fe02b6d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/patcomp.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/__init__.pyc
deleted file mode 100644
index 0fce660..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/driver.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/driver.pyc
deleted file mode 100644
index 9f9a3ad..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/driver.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/grammar.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/grammar.pyc
deleted file mode 100644
index b65729c..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/grammar.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/literals.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/literals.pyc
deleted file mode 100644
index a962bef..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/literals.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/parse.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/parse.pyc
deleted file mode 100644
index ff2a9b2..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/parse.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/pgen.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/pgen.pyc
deleted file mode 100644
index 9847f74..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/pgen.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/token.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/token.pyc
deleted file mode 100644
index 72c2a0a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/token.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/tokenize.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/tokenize.pyc
deleted file mode 100644
index 57c72bf..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pgen2/tokenize.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pygram.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pygram.pyc
deleted file mode 100644
index 04be8ae..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pygram.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pytree.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pytree.pyc
deleted file mode 100644
index b94f5f6..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/pytree.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/refactor.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/refactor.pyc
deleted file mode 100644
index 649dd7a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lib2to3/refactor.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/linecache.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/linecache.pyc
deleted file mode 100644
index 7d86e58..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/linecache.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/locale.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/locale.pyc
deleted file mode 100644
index afb46a9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/locale.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/logging/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/logging/__init__.pyc
deleted file mode 100644
index 1fb8e57..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/logging/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lzma.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lzma.pyc
deleted file mode 100644
index a164a3f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/lzma.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/mimetypes.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/mimetypes.pyc
deleted file mode 100644
index ff613ba..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/mimetypes.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/__init__.pyc
deleted file mode 100644
index d9c82e3..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/connection.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/connection.pyc
deleted file mode 100644
index 5944491..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/connection.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/context.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/context.pyc
deleted file mode 100644
index e86fd68..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/context.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/dummy/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/dummy/__init__.pyc
deleted file mode 100644
index c5fd6e4..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/dummy/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/dummy/connection.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/dummy/connection.pyc
deleted file mode 100644
index dabd4b5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/dummy/connection.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/forkserver.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/forkserver.pyc
deleted file mode 100644
index f2973cf..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/forkserver.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/heap.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/heap.pyc
deleted file mode 100644
index 9011d8b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/heap.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/managers.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/managers.pyc
deleted file mode 100644
index 9bb86ef..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/managers.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/pool.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/pool.pyc
deleted file mode 100644
index a0327e1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/pool.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_fork.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_fork.pyc
deleted file mode 100644
index 43befbf..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_fork.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_forkserver.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_forkserver.pyc
deleted file mode 100644
index 2080c95..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_forkserver.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_spawn_posix.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_spawn_posix.pyc
deleted file mode 100644
index ce88fd1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_spawn_posix.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_spawn_win32.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_spawn_win32.pyc
deleted file mode 100644
index 9fea826..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/popen_spawn_win32.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/process.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/process.pyc
deleted file mode 100644
index 199a2cf..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/process.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/queues.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/queues.pyc
deleted file mode 100644
index 474a778..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/queues.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/reduction.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/reduction.pyc
deleted file mode 100644
index ecdc164..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/reduction.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/resource_sharer.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/resource_sharer.pyc
deleted file mode 100644
index a4b44ac..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/resource_sharer.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/semaphore_tracker.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/semaphore_tracker.pyc
deleted file mode 100644
index 88d8325..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/semaphore_tracker.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/sharedctypes.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/sharedctypes.pyc
deleted file mode 100644
index 98df5fd..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/sharedctypes.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/spawn.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/spawn.pyc
deleted file mode 100644
index 99b0c96..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/spawn.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/synchronize.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/synchronize.pyc
deleted file mode 100644
index ca515d7..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/synchronize.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/util.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/util.pyc
deleted file mode 100644
index 1253cf5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/multiprocessing/util.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ntpath.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ntpath.pyc
deleted file mode 100644
index 9b77af4..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ntpath.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/numbers.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/numbers.pyc
deleted file mode 100644
index da5f7a3..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/numbers.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/opcode.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/opcode.pyc
deleted file mode 100644
index 36c48e0..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/opcode.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/operator.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/operator.pyc
deleted file mode 100644
index ad12b75..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/operator.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/optparse.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/optparse.pyc
deleted file mode 100644
index f94f3a9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/optparse.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/os.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/os.pyc
deleted file mode 100644
index bcf7d75..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/os.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pdb.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pdb.pyc
deleted file mode 100644
index 52dc522..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pdb.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pickle.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pickle.pyc
deleted file mode 100644
index ebb7d59..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pickle.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkg_resources/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkg_resources/__init__.pyc
deleted file mode 100644
index 6a4ffe4..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkg_resources/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkg_resources/extern/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkg_resources/extern/__init__.pyc
deleted file mode 100644
index 68875e6..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkg_resources/extern/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkg_resources/py31compat.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkg_resources/py31compat.pyc
deleted file mode 100644
index 9114caa..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkg_resources/py31compat.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkgutil.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkgutil.pyc
deleted file mode 100644
index 853b3b2..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pkgutil.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/platform.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/platform.pyc
deleted file mode 100644
index 785de46..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/platform.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/plistlib.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/plistlib.pyc
deleted file mode 100644
index d2195a4..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/plistlib.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/posixpath.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/posixpath.pyc
deleted file mode 100644
index 2a38b73..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/posixpath.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pprint.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pprint.pyc
deleted file mode 100644
index 4a0c90d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pprint.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/py_compile.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/py_compile.pyc
deleted file mode 100644
index c15fecc..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/py_compile.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc.pyc
deleted file mode 100644
index d727cf4..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc_data/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc_data/__init__.pyc
deleted file mode 100644
index 4a594b1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc_data/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc_data/_pydoc.css b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc_data/_pydoc.css
deleted file mode 100644
index f036ef3..0000000
--- a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc_data/_pydoc.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- CSS file for pydoc.
-
- Contents of this file are subject to change without notice.
-
-*/
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc_data/topics.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc_data/topics.pyc
deleted file mode 100644
index 5cd7be8..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/pydoc_data/topics.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/queue.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/queue.pyc
deleted file mode 100644
index 1a3137d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/queue.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/quopri.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/quopri.pyc
deleted file mode 100644
index 711076b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/quopri.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/random.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/random.pyc
deleted file mode 100644
index c994885..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/random.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/re.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/re.pyc
deleted file mode 100644
index 468a583..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/re.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/reprlib.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/reprlib.pyc
deleted file mode 100644
index b17c40b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/reprlib.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/runpy.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/runpy.pyc
deleted file mode 100644
index 0e54e0b..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/runpy.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/selectors.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/selectors.pyc
deleted file mode 100644
index 1b4c554..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/selectors.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/shlex.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/shlex.pyc
deleted file mode 100644
index cc9c0be..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/shlex.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/shutil.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/shutil.pyc
deleted file mode 100644
index 99259e9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/shutil.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/signal.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/signal.pyc
deleted file mode 100644
index 49761b2..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/signal.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/socket.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/socket.pyc
deleted file mode 100644
index 5d22e21..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/socket.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/socketserver.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/socketserver.pyc
deleted file mode 100644
index 02b889e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/socketserver.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sqlite3/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sqlite3/__init__.pyc
deleted file mode 100644
index f69f871..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sqlite3/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sqlite3/dbapi2.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sqlite3/dbapi2.pyc
deleted file mode 100644
index d26cddb..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sqlite3/dbapi2.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sre_compile.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sre_compile.pyc
deleted file mode 100644
index cb7356f..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sre_compile.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sre_constants.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sre_constants.pyc
deleted file mode 100644
index c7112c5..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sre_constants.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sre_parse.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sre_parse.pyc
deleted file mode 100644
index 1828bcc..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sre_parse.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ssl.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ssl.pyc
deleted file mode 100644
index 1de0a26..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/ssl.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/stat.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/stat.pyc
deleted file mode 100644
index 8c41407..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/stat.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/string.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/string.pyc
deleted file mode 100644
index b88dc26..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/string.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/stringprep.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/stringprep.pyc
deleted file mode 100644
index f2b5683..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/stringprep.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/struct.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/struct.pyc
deleted file mode 100644
index fcc730e..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/struct.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/subprocess.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/subprocess.pyc
deleted file mode 100644
index 3749dd9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/subprocess.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sysconfig.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sysconfig.pyc
deleted file mode 100644
index 1e28915..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/sysconfig.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tarfile.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tarfile.pyc
deleted file mode 100644
index 0cf7eb9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tarfile.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tempfile.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tempfile.pyc
deleted file mode 100644
index 9d46dc2..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tempfile.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/textwrap.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/textwrap.pyc
deleted file mode 100644
index 6f22d19..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/textwrap.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/threading.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/threading.pyc
deleted file mode 100644
index 6be1ed2..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/threading.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tkinter/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tkinter/__init__.pyc
deleted file mode 100644
index 00a32b3..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tkinter/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tkinter/constants.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tkinter/constants.pyc
deleted file mode 100644
index 03291ba..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tkinter/constants.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/token.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/token.pyc
deleted file mode 100644
index 42caeaf..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/token.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tokenize.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tokenize.pyc
deleted file mode 100644
index e0c2760..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tokenize.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/traceback.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/traceback.pyc
deleted file mode 100644
index 5d92b0d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/traceback.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tracemalloc.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tracemalloc.pyc
deleted file mode 100644
index 09d499d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/tracemalloc.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/types.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/types.pyc
deleted file mode 100644
index 87bf2ad..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/types.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/__init__.pyc
deleted file mode 100644
index 7be01db..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/case.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/case.pyc
deleted file mode 100644
index be627e6..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/case.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/loader.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/loader.pyc
deleted file mode 100644
index 31a19e4..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/loader.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/main.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/main.pyc
deleted file mode 100644
index 666b399..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/main.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/result.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/result.pyc
deleted file mode 100644
index 8d8b28a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/result.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/runner.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/runner.pyc
deleted file mode 100644
index 2023563..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/runner.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/signals.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/signals.pyc
deleted file mode 100644
index 4919c16..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/signals.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/suite.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/suite.pyc
deleted file mode 100644
index 1b7e64d..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/suite.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/util.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/util.pyc
deleted file mode 100644
index 57e05ac..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/unittest/util.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/urllib/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/urllib/__init__.pyc
deleted file mode 100644
index d32f728..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/urllib/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/urllib/parse.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/urllib/parse.pyc
deleted file mode 100644
index 9f70d89..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/urllib/parse.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/uu.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/uu.pyc
deleted file mode 100644
index e05aef1..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/uu.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/warnings.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/warnings.pyc
deleted file mode 100644
index 1a8ee20..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/warnings.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/weakref.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/weakref.pyc
deleted file mode 100644
index aeabfc9..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/weakref.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/webbrowser.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/webbrowser.pyc
deleted file mode 100644
index 1d1b78c..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/webbrowser.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xml/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xml/__init__.pyc
deleted file mode 100644
index 0d07ed0..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xml/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xml/parsers/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xml/parsers/__init__.pyc
deleted file mode 100644
index 09d229a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xml/parsers/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xml/parsers/expat.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xml/parsers/expat.pyc
deleted file mode 100644
index ea16a31..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xml/parsers/expat.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xmlrpc/__init__.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xmlrpc/__init__.pyc
deleted file mode 100644
index b849d82..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xmlrpc/__init__.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xmlrpc/client.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xmlrpc/client.pyc
deleted file mode 100644
index 36c3916..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/xmlrpc/client.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/zipfile.pyc b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/zipfile.pyc
deleted file mode 100644
index 8a5a23a..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/collect/zipfile.pyc and /dev/null differ
diff --git a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/python36.zip b/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/python36.zip
deleted file mode 100644
index e52c133..0000000
Binary files a/app/build/bdist.macosx-10.6-intel/python3.6-standalone/app/python36.zip and /dev/null differ
diff --git a/app/constants.py b/app/constants.py
new file mode 100644
index 0000000..f10435c
--- /dev/null
+++ b/app/constants.py
@@ -0,0 +1,13 @@
+import os
+
+
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+SRC_DIR = os.path.join(BASE_DIR, 'app')
+ASSETS_DIR = os.path.join(BASE_DIR, 'assets')
+DATABASE_NAME = os.path.join(SRC_DIR, 'books.db')
+EYE_IMAGE = os.path.join(ASSETS_DIR, 'eye.png')
+SEARCH_IMAGE = os.path.join(ASSETS_DIR, 'search.png')
+ADD_IMAGE = os.path.join(ASSETS_DIR, 'add.png')
+UPDATE_IMAGE = os.path.join(ASSETS_DIR, 'update.png')
+DELETE_IMAGE = os.path.join(ASSETS_DIR, 'delete.png')
+CLOSE_IMAGE = os.path.join(ASSETS_DIR, 'close.png')
diff --git a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Python b/app/dist/frontend.app/Contents/Frameworks/Python.framework/Python
deleted file mode 120000
index be75854..0000000
--- a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Python
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Python
\ No newline at end of file
diff --git a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Resources b/app/dist/frontend.app/Contents/Frameworks/Python.framework/Resources
deleted file mode 120000
index 953ee36..0000000
--- a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Resources
+++ /dev/null
@@ -1 +0,0 @@
-Versions/Current/Resources
\ No newline at end of file
diff --git a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/Python b/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/Python
deleted file mode 100755
index 37293e5..0000000
Binary files a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/Python and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/Resources/Info.plist b/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/Resources/Info.plist
deleted file mode 100644
index ff67e94..0000000
--- a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/Resources/Info.plist
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- English
- CFBundleExecutable
- Python
- CFBundleGetInfoString
- Python Runtime and Library
- CFBundleIdentifier
- org.python.python
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- Python
- CFBundlePackageType
- FMWK
- CFBundleShortVersionString
- 3.6.3, (c) 2001-2017 Python Software Foundation.
- CFBundleLongVersionString
- 3.6.3, (c) 2001-2017 Python Software Foundation.
- CFBundleSignature
- ????
- CFBundleVersion
- 3.6.3
-
-
diff --git a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/include/python3.6m/pyconfig.h b/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/include/python3.6m/pyconfig.h
deleted file mode 100644
index 6b1d2e8..0000000
--- a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/include/python3.6m/pyconfig.h
+++ /dev/null
@@ -1,1525 +0,0 @@
-/* pyconfig.h. Generated from pyconfig.h.in by configure. */
-/* pyconfig.h.in. Generated from configure.ac by autoheader. */
-
-
-#ifndef Py_PYCONFIG_H
-#define Py_PYCONFIG_H
-
-
-/* Define if building universal (internal helper macro) */
-#define AC_APPLE_UNIVERSAL_BUILD 1
-
-/* Define for AIX if your compiler is a genuine IBM xlC/xlC_r and you want
- support for AIX C++ shared extension modules. */
-/* #undef AIX_GENUINE_CPLUSPLUS */
-
-/* The Android API level. */
-/* #undef ANDROID_API_LEVEL */
-
-/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM
- mixed-endian order (byte order 45670123) */
-/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */
-
-/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most
- significant byte first */
-/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */
-
-/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the
- least significant byte first */
-#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1
-
-/* Define if --enable-ipv6 is specified */
-#define ENABLE_IPV6 1
-
-/* Define if flock needs to be linked with bsd library. */
-/* #undef FLOCK_NEEDS_LIBBSD */
-
-/* Define if getpgrp() must be called as getpgrp(0). */
-/* #undef GETPGRP_HAVE_ARG */
-
-/* Define if gettimeofday() does not have second (timezone) argument This is
- the case on Motorola V4 (R40V4.2) */
-/* #undef GETTIMEOFDAY_NO_TZ */
-
-/* Define to 1 if you have the `accept4' function. */
-/* #undef HAVE_ACCEPT4 */
-
-/* Define to 1 if you have the `acosh' function. */
-#define HAVE_ACOSH 1
-
-/* struct addrinfo (netdb.h) */
-#define HAVE_ADDRINFO 1
-
-/* Define to 1 if you have the `alarm' function. */
-#define HAVE_ALARM 1
-
-/* Define if aligned memory access is required */
-/* #undef HAVE_ALIGNED_REQUIRED */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_ALLOCA_H 1
-
-/* Define this if your time.h defines altzone. */
-/* #undef HAVE_ALTZONE */
-
-/* Define to 1 if you have the `asinh' function. */
-#define HAVE_ASINH 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_ASM_TYPES_H */
-
-/* Define to 1 if you have the `atanh' function. */
-#define HAVE_ATANH 1
-
-/* Define to 1 if you have the `bind_textdomain_codeset' function. */
-/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_BLUETOOTH_H */
-
-/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide
- chars that would be converted. */
-/* #undef HAVE_BROKEN_MBSTOWCS */
-
-/* Define if nice() returns success/failure instead of the new priority. */
-/* #undef HAVE_BROKEN_NICE */
-
-/* Define if the system reports an invalid PIPE_BUF value. */
-/* #undef HAVE_BROKEN_PIPE_BUF */
-
-/* Define if poll() sets errno on invalid file descriptors. */
-/* #undef HAVE_BROKEN_POLL */
-
-/* Define if the Posix semaphores do not work on your system */
-/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */
-
-/* Define if pthread_sigmask() does not work on your system. */
-/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */
-
-/* define to 1 if your sem_getvalue is broken. */
-#define HAVE_BROKEN_SEM_GETVALUE 1
-
-/* Define if `unsetenv` does not return an int. */
-/* #undef HAVE_BROKEN_UNSETENV */
-
-/* Has builtin atomics */
-/* #undef HAVE_BUILTIN_ATOMIC */
-
-/* Define to 1 if you have the 'chflags' function. */
-#define HAVE_CHFLAGS 1
-
-/* Define to 1 if you have the `chown' function. */
-#define HAVE_CHOWN 1
-
-/* Define if you have the 'chroot' function. */
-#define HAVE_CHROOT 1
-
-/* Define to 1 if you have the `clock' function. */
-#define HAVE_CLOCK 1
-
-/* Define to 1 if you have the `clock_getres' function. */
-/* #undef HAVE_CLOCK_GETRES */
-
-/* Define to 1 if you have the `clock_gettime' function. */
-/* #undef HAVE_CLOCK_GETTIME */
-
-/* Define to 1 if you have the `clock_settime' function. */
-/* #undef HAVE_CLOCK_SETTIME */
-
-/* Define if the C compiler supports computed gotos. */
-#define HAVE_COMPUTED_GOTOS 1
-
-/* Define to 1 if you have the `confstr' function. */
-#define HAVE_CONFSTR 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_CONIO_H */
-
-/* Define to 1 if you have the `copysign' function. */
-#define HAVE_COPYSIGN 1
-
-/* Define to 1 if you have the `ctermid' function. */
-#define HAVE_CTERMID 1
-
-/* Define if you have the 'ctermid_r' function. */
-#define HAVE_CTERMID_R 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_CURSES_H 1
-
-/* Define if you have the 'is_term_resized' function. */
-#define HAVE_CURSES_IS_TERM_RESIZED 1
-
-/* Define if you have the 'resizeterm' function. */
-#define HAVE_CURSES_RESIZETERM 1
-
-/* Define if you have the 'resize_term' function. */
-#define HAVE_CURSES_RESIZE_TERM 1
-
-/* Define to 1 if you have the declaration of `isfinite', and to 0 if you
- don't. */
-#define HAVE_DECL_ISFINITE 1
-
-/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
- */
-#define HAVE_DECL_ISINF 1
-
-/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
- */
-#define HAVE_DECL_ISNAN 1
-
-/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_DEEPBIND 0
-
-/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_GLOBAL 1
-
-/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_LAZY 1
-
-/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_LOCAL 1
-
-/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_NODELETE 1
-
-/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_NOLOAD 1
-
-/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_NOW 1
-
-/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
- */
-/* #undef HAVE_DECL_TZNAME */
-
-/* Define to 1 if you have the device macros. */
-#define HAVE_DEVICE_MACROS 1
-
-/* Define to 1 if you have the /dev/ptc device file. */
-/* #undef HAVE_DEV_PTC */
-
-/* Define to 1 if you have the /dev/ptmx device file. */
-#define HAVE_DEV_PTMX 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_DIRECT_H */
-
-/* Define to 1 if the dirent structure has a d_type field */
-#define HAVE_DIRENT_D_TYPE 1
-
-/* Define to 1 if you have the header file, and it defines `DIR'.
- */
-#define HAVE_DIRENT_H 1
-
-/* Define if you have the 'dirfd' function or macro. */
-#define HAVE_DIRFD 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_DLFCN_H 1
-
-/* Define to 1 if you have the `dlopen' function. */
-#define HAVE_DLOPEN 1
-
-/* Define to 1 if you have the `dup2' function. */
-#define HAVE_DUP2 1
-
-/* Define to 1 if you have the `dup3' function. */
-/* #undef HAVE_DUP3 */
-
-/* Defined when any dynamic module loading is enabled. */
-#define HAVE_DYNAMIC_LOADING 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_ENDIAN_H */
-
-/* Define if you have the 'epoll' functions. */
-/* #undef HAVE_EPOLL */
-
-/* Define if you have the 'epoll_create1' function. */
-/* #undef HAVE_EPOLL_CREATE1 */
-
-/* Define to 1 if you have the `erf' function. */
-#define HAVE_ERF 1
-
-/* Define to 1 if you have the `erfc' function. */
-#define HAVE_ERFC 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_ERRNO_H 1
-
-/* Define to 1 if you have the `execv' function. */
-#define HAVE_EXECV 1
-
-/* Define to 1 if you have the `expm1' function. */
-#define HAVE_EXPM1 1
-
-/* Define to 1 if you have the `faccessat' function. */
-/* #undef HAVE_FACCESSAT */
-
-/* Define if you have the 'fchdir' function. */
-#define HAVE_FCHDIR 1
-
-/* Define to 1 if you have the `fchmod' function. */
-#define HAVE_FCHMOD 1
-
-/* Define to 1 if you have the `fchmodat' function. */
-/* #undef HAVE_FCHMODAT */
-
-/* Define to 1 if you have the `fchown' function. */
-#define HAVE_FCHOWN 1
-
-/* Define to 1 if you have the `fchownat' function. */
-/* #undef HAVE_FCHOWNAT */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define if you have the 'fdatasync' function. */
-/* #undef HAVE_FDATASYNC */
-
-/* Define to 1 if you have the `fdopendir' function. */
-/* #undef HAVE_FDOPENDIR */
-
-/* Define to 1 if you have the `fexecve' function. */
-/* #undef HAVE_FEXECVE */
-
-/* Define to 1 if you have the `finite' function. */
-#define HAVE_FINITE 1
-
-/* Define to 1 if you have the `flock' function. */
-#define HAVE_FLOCK 1
-
-/* Define to 1 if you have the `fork' function. */
-#define HAVE_FORK 1
-
-/* Define to 1 if you have the `forkpty' function. */
-#define HAVE_FORKPTY 1
-
-/* Define to 1 if you have the `fpathconf' function. */
-#define HAVE_FPATHCONF 1
-
-/* Define to 1 if you have the `fseek64' function. */
-/* #undef HAVE_FSEEK64 */
-
-/* Define to 1 if you have the `fseeko' function. */
-#define HAVE_FSEEKO 1
-
-/* Define to 1 if you have the `fstatat' function. */
-/* #undef HAVE_FSTATAT */
-
-/* Define to 1 if you have the `fstatvfs' function. */
-#define HAVE_FSTATVFS 1
-
-/* Define if you have the 'fsync' function. */
-#define HAVE_FSYNC 1
-
-/* Define to 1 if you have the `ftell64' function. */
-/* #undef HAVE_FTELL64 */
-
-/* Define to 1 if you have the `ftello' function. */
-#define HAVE_FTELLO 1
-
-/* Define to 1 if you have the `ftime' function. */
-#define HAVE_FTIME 1
-
-/* Define to 1 if you have the `ftruncate' function. */
-#define HAVE_FTRUNCATE 1
-
-/* Define to 1 if you have the `futimens' function. */
-/* #undef HAVE_FUTIMENS */
-
-/* Define to 1 if you have the `futimes' function. */
-#define HAVE_FUTIMES 1
-
-/* Define to 1 if you have the `futimesat' function. */
-/* #undef HAVE_FUTIMESAT */
-
-/* Define to 1 if you have the `gai_strerror' function. */
-#define HAVE_GAI_STRERROR 1
-
-/* Define to 1 if you have the `gamma' function. */
-#define HAVE_GAMMA 1
-
-/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */
-/* #undef HAVE_GCC_ASM_FOR_MC68881 */
-
-/* Define if we can use x64 gcc inline assembler */
-/* #undef HAVE_GCC_ASM_FOR_X64 */
-
-/* Define if we can use gcc inline assembler to get and set x87 control word
- */
-#define HAVE_GCC_ASM_FOR_X87 1
-
-/* Define if your compiler provides __uint128_t */
-/* #undef HAVE_GCC_UINT128_T */
-
-/* Define if you have the getaddrinfo function. */
-#define HAVE_GETADDRINFO 1
-
-/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */
-#define HAVE_GETC_UNLOCKED 1
-
-/* Define to 1 if you have the `getentropy' function. */
-/* #undef HAVE_GETENTROPY */
-
-/* Define to 1 if you have the `getgrouplist' function. */
-#define HAVE_GETGROUPLIST 1
-
-/* Define to 1 if you have the `getgroups' function. */
-#define HAVE_GETGROUPS 1
-
-/* Define to 1 if you have the `gethostbyname' function. */
-#define HAVE_GETHOSTBYNAME 1
-
-/* Define this if you have some version of gethostbyname_r() */
-/* #undef HAVE_GETHOSTBYNAME_R */
-
-/* Define this if you have the 3-arg version of gethostbyname_r(). */
-/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */
-
-/* Define this if you have the 5-arg version of gethostbyname_r(). */
-/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */
-
-/* Define this if you have the 6-arg version of gethostbyname_r(). */
-/* #undef HAVE_GETHOSTBYNAME_R_6_ARG */
-
-/* Define to 1 if you have the `getitimer' function. */
-#define HAVE_GETITIMER 1
-
-/* Define to 1 if you have the `getloadavg' function. */
-#define HAVE_GETLOADAVG 1
-
-/* Define to 1 if you have the `getlogin' function. */
-#define HAVE_GETLOGIN 1
-
-/* Define to 1 if you have the `getnameinfo' function. */
-#define HAVE_GETNAMEINFO 1
-
-/* Define if you have the 'getpagesize' function. */
-#define HAVE_GETPAGESIZE 1
-
-/* Define to 1 if you have the `getpeername' function. */
-#define HAVE_GETPEERNAME 1
-
-/* Define to 1 if you have the `getpgid' function. */
-#define HAVE_GETPGID 1
-
-/* Define to 1 if you have the `getpgrp' function. */
-#define HAVE_GETPGRP 1
-
-/* Define to 1 if you have the `getpid' function. */
-#define HAVE_GETPID 1
-
-/* Define to 1 if you have the `getpriority' function. */
-#define HAVE_GETPRIORITY 1
-
-/* Define to 1 if you have the `getpwent' function. */
-#define HAVE_GETPWENT 1
-
-/* Define to 1 if the getrandom() function is available */
-/* #undef HAVE_GETRANDOM */
-
-/* Define to 1 if the Linux getrandom() syscall is available */
-/* #undef HAVE_GETRANDOM_SYSCALL */
-
-/* Define to 1 if you have the `getresgid' function. */
-/* #undef HAVE_GETRESGID */
-
-/* Define to 1 if you have the `getresuid' function. */
-/* #undef HAVE_GETRESUID */
-
-/* Define to 1 if you have the `getsid' function. */
-#define HAVE_GETSID 1
-
-/* Define to 1 if you have the `getspent' function. */
-/* #undef HAVE_GETSPENT */
-
-/* Define to 1 if you have the `getspnam' function. */
-/* #undef HAVE_GETSPNAM */
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#define HAVE_GETTIMEOFDAY 1
-
-/* Define to 1 if you have the `getwd' function. */
-#define HAVE_GETWD 1
-
-/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and
- bcopy. */
-/* #undef HAVE_GLIBC_MEMMOVE_BUG */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_GRP_H 1
-
-/* Define if you have the 'hstrerror' function. */
-#define HAVE_HSTRERROR 1
-
-/* Define this if you have le64toh() */
-/* #undef HAVE_HTOLE64 */
-
-/* Define to 1 if you have the `hypot' function. */
-#define HAVE_HYPOT 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_IEEEFP_H */
-
-/* Define to 1 if you have the 'if_nameindex' function. */
-#define HAVE_IF_NAMEINDEX 1
-
-/* Define if you have the 'inet_aton' function. */
-#define HAVE_INET_ATON 1
-
-/* Define if you have the 'inet_pton' function. */
-#define HAVE_INET_PTON 1
-
-/* Define to 1 if you have the `initgroups' function. */
-#define HAVE_INITGROUPS 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_IO_H */
-
-/* Define if gcc has the ipa-pure-const bug. */
-/* #undef HAVE_IPA_PURE_CONST_BUG */
-
-/* Define to 1 if you have the `kill' function. */
-#define HAVE_KILL 1
-
-/* Define to 1 if you have the `killpg' function. */
-#define HAVE_KILLPG 1
-
-/* Define if you have the 'kqueue' functions. */
-#define HAVE_KQUEUE 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_LANGINFO_H 1
-
-/* Defined to enable large file support when an off_t is bigger than a long
- and long long is available and at least as big as an off_t. You may need to
- add some flags for configuration and compilation to enable this mode. (For
- Solaris and Linux, the necessary defines are already defined.) */
-/* #undef HAVE_LARGEFILE_SUPPORT */
-
-/* Define to 1 if you have the 'lchflags' function. */
-#define HAVE_LCHFLAGS 1
-
-/* Define to 1 if you have the `lchmod' function. */
-#define HAVE_LCHMOD 1
-
-/* Define to 1 if you have the `lchown' function. */
-#define HAVE_LCHOWN 1
-
-/* Define to 1 if you have the `lgamma' function. */
-#define HAVE_LGAMMA 1
-
-/* Define to 1 if you have the `dl' library (-ldl). */
-#define HAVE_LIBDL 1
-
-/* Define to 1 if you have the `dld' library (-ldld). */
-/* #undef HAVE_LIBDLD */
-
-/* Define to 1 if you have the `ieee' library (-lieee). */
-/* #undef HAVE_LIBIEEE */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LIBINTL_H */
-
-/* Define if you have the readline library (-lreadline). */
-#define HAVE_LIBREADLINE 1
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-/* #undef HAVE_LIBRESOLV */
-
-/* Define to 1 if you have the `sendfile' library (-lsendfile). */
-/* #undef HAVE_LIBSENDFILE */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LIBUTIL_H */
-
-/* Define if you have the 'link' function. */
-#define HAVE_LINK 1
-
-/* Define to 1 if you have the `linkat' function. */
-/* #undef HAVE_LINKAT */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_CAN_BCM_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_CAN_H */
-
-/* Define if compiling using Linux 3.6 or later. */
-/* #undef HAVE_LINUX_CAN_RAW_FD_FRAMES */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_CAN_RAW_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_NETLINK_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_RANDOM_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_TIPC_H */
-
-/* Define to 1 if you have the 'lockf' function and the F_LOCK macro. */
-#define HAVE_LOCKF 1
-
-/* Define to 1 if you have the `log1p' function. */
-#define HAVE_LOG1P 1
-
-/* Define to 1 if you have the `log2' function. */
-#define HAVE_LOG2 1
-
-/* Define this if you have the type long double. */
-#define HAVE_LONG_DOUBLE 1
-
-/* Define to 1 if you have the `lstat' function. */
-#define HAVE_LSTAT 1
-
-/* Define to 1 if you have the `lutimes' function. */
-#define HAVE_LUTIMES 1
-
-/* Define this if you have the makedev macro. */
-#define HAVE_MAKEDEV 1
-
-/* Define to 1 if you have the `mbrtowc' function. */
-#define HAVE_MBRTOWC 1
-
-/* Define to 1 if you have the `memmove' function. */
-#define HAVE_MEMMOVE 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `memrchr' function. */
-/* #undef HAVE_MEMRCHR */
-
-/* Define to 1 if you have the `mkdirat' function. */
-/* #undef HAVE_MKDIRAT */
-
-/* Define to 1 if you have the `mkfifo' function. */
-#define HAVE_MKFIFO 1
-
-/* Define to 1 if you have the `mkfifoat' function. */
-/* #undef HAVE_MKFIFOAT */
-
-/* Define to 1 if you have the `mknod' function. */
-#define HAVE_MKNOD 1
-
-/* Define to 1 if you have the `mknodat' function. */
-/* #undef HAVE_MKNODAT */
-
-/* Define to 1 if you have the `mktime' function. */
-#define HAVE_MKTIME 1
-
-/* Define to 1 if you have the `mmap' function. */
-#define HAVE_MMAP 1
-
-/* Define to 1 if you have the `mremap' function. */
-/* #undef HAVE_MREMAP */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_NCURSES_H 1
-
-/* Define to 1 if you have the header file, and it defines `DIR'. */
-/* #undef HAVE_NDIR_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_NETPACKET_PACKET_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_NET_IF_H 1
-
-/* Define to 1 if you have the `nice' function. */
-#define HAVE_NICE 1
-
-/* Define to 1 if you have the `openat' function. */
-/* #undef HAVE_OPENAT */
-
-/* Define to 1 if you have the `openpty' function. */
-#define HAVE_OPENPTY 1
-
-/* Define to 1 if you have the `pathconf' function. */
-#define HAVE_PATHCONF 1
-
-/* Define to 1 if you have the `pause' function. */
-#define HAVE_PAUSE 1
-
-/* Define to 1 if you have the `pipe2' function. */
-/* #undef HAVE_PIPE2 */
-
-/* Define to 1 if you have the `plock' function. */
-/* #undef HAVE_PLOCK */
-
-/* Define to 1 if you have the `poll' function. */
-#define HAVE_POLL 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_POLL_H 1
-
-/* Define to 1 if you have the `posix_fadvise' function. */
-/* #undef HAVE_POSIX_FADVISE */
-
-/* Define to 1 if you have the `posix_fallocate' function. */
-/* #undef HAVE_POSIX_FALLOCATE */
-
-/* Define to 1 if you have the `pread' function. */
-#define HAVE_PREAD 1
-
-/* Define if you have the 'prlimit' functions. */
-/* #undef HAVE_PRLIMIT */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_PROCESS_H */
-
-/* Define if your compiler supports function prototype */
-#define HAVE_PROTOTYPES 1
-
-/* Define to 1 if you have the `pthread_atfork' function. */
-#define HAVE_PTHREAD_ATFORK 1
-
-/* Defined for Solaris 2.6 bug in pthread header. */
-/* #undef HAVE_PTHREAD_DESTRUCTOR */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_PTHREAD_H 1
-
-/* Define to 1 if you have the `pthread_init' function. */
-/* #undef HAVE_PTHREAD_INIT */
-
-/* Define to 1 if you have the `pthread_kill' function. */
-#define HAVE_PTHREAD_KILL 1
-
-/* Define to 1 if you have the `pthread_sigmask' function. */
-#define HAVE_PTHREAD_SIGMASK 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_PTY_H */
-
-/* Define to 1 if you have the `putenv' function. */
-#define HAVE_PUTENV 1
-
-/* Define to 1 if you have the `pwrite' function. */
-#define HAVE_PWRITE 1
-
-/* Define to 1 if you have the `readlink' function. */
-#define HAVE_READLINK 1
-
-/* Define to 1 if you have the `readlinkat' function. */
-/* #undef HAVE_READLINKAT */
-
-/* Define to 1 if you have the `readv' function. */
-#define HAVE_READV 1
-
-/* Define to 1 if you have the `realpath' function. */
-#define HAVE_REALPATH 1
-
-/* Define to 1 if you have the `renameat' function. */
-/* #undef HAVE_RENAMEAT */
-
-/* Define if readline supports append_history */
-/* #undef HAVE_RL_APPEND_HISTORY */
-
-/* Define if you have readline 2.1 */
-#define HAVE_RL_CALLBACK 1
-
-/* Define if you can turn off readline's signal handling. */
-/* #undef HAVE_RL_CATCH_SIGNAL */
-
-/* Define if you have readline 2.2 */
-#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1
-
-/* Define if you have readline 4.0 */
-#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1
-
-/* Define if you have readline 4.2 */
-#define HAVE_RL_COMPLETION_MATCHES 1
-
-/* Define if you have rl_completion_suppress_append */
-/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */
-
-/* Define if you have readline 4.0 */
-#define HAVE_RL_PRE_INPUT_HOOK 1
-
-/* Define if you have readline 4.0 */
-/* #undef HAVE_RL_RESIZE_TERMINAL */
-
-/* Define to 1 if you have the `round' function. */
-#define HAVE_ROUND 1
-
-/* Define to 1 if you have the `sched_get_priority_max' function. */
-#define HAVE_SCHED_GET_PRIORITY_MAX 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SCHED_H 1
-
-/* Define to 1 if you have the `sched_rr_get_interval' function. */
-/* #undef HAVE_SCHED_RR_GET_INTERVAL */
-
-/* Define to 1 if you have the `sched_setaffinity' function. */
-/* #undef HAVE_SCHED_SETAFFINITY */
-
-/* Define to 1 if you have the `sched_setparam' function. */
-/* #undef HAVE_SCHED_SETPARAM */
-
-/* Define to 1 if you have the `sched_setscheduler' function. */
-/* #undef HAVE_SCHED_SETSCHEDULER */
-
-/* Define to 1 if you have the `select' function. */
-#define HAVE_SELECT 1
-
-/* Define to 1 if you have the `sem_getvalue' function. */
-#define HAVE_SEM_GETVALUE 1
-
-/* Define to 1 if you have the `sem_open' function. */
-#define HAVE_SEM_OPEN 1
-
-/* Define to 1 if you have the `sem_timedwait' function. */
-/* #undef HAVE_SEM_TIMEDWAIT */
-
-/* Define to 1 if you have the `sem_unlink' function. */
-#define HAVE_SEM_UNLINK 1
-
-/* Define to 1 if you have the `sendfile' function. */
-#define HAVE_SENDFILE 1
-
-/* Define to 1 if you have the `setegid' function. */
-#define HAVE_SETEGID 1
-
-/* Define to 1 if you have the `seteuid' function. */
-#define HAVE_SETEUID 1
-
-/* Define to 1 if you have the `setgid' function. */
-#define HAVE_SETGID 1
-
-/* Define if you have the 'setgroups' function. */
-#define HAVE_SETGROUPS 1
-
-/* Define to 1 if you have the `sethostname' function. */
-#define HAVE_SETHOSTNAME 1
-
-/* Define to 1 if you have the `setitimer' function. */
-#define HAVE_SETITIMER 1
-
-/* Define to 1 if you have the `setlocale' function. */
-#define HAVE_SETLOCALE 1
-
-/* Define to 1 if you have the `setpgid' function. */
-#define HAVE_SETPGID 1
-
-/* Define to 1 if you have the `setpgrp' function. */
-#define HAVE_SETPGRP 1
-
-/* Define to 1 if you have the `setpriority' function. */
-#define HAVE_SETPRIORITY 1
-
-/* Define to 1 if you have the `setregid' function. */
-#define HAVE_SETREGID 1
-
-/* Define to 1 if you have the `setresgid' function. */
-/* #undef HAVE_SETRESGID */
-
-/* Define to 1 if you have the `setresuid' function. */
-/* #undef HAVE_SETRESUID */
-
-/* Define to 1 if you have the `setreuid' function. */
-#define HAVE_SETREUID 1
-
-/* Define to 1 if you have the `setsid' function. */
-#define HAVE_SETSID 1
-
-/* Define to 1 if you have the `setuid' function. */
-#define HAVE_SETUID 1
-
-/* Define to 1 if you have the `setvbuf' function. */
-#define HAVE_SETVBUF 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SHADOW_H */
-
-/* Define to 1 if you have the `sigaction' function. */
-#define HAVE_SIGACTION 1
-
-/* Define to 1 if you have the `sigaltstack' function. */
-#define HAVE_SIGALTSTACK 1
-
-/* Define to 1 if you have the `siginterrupt' function. */
-#define HAVE_SIGINTERRUPT 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SIGNAL_H 1
-
-/* Define to 1 if you have the `sigpending' function. */
-#define HAVE_SIGPENDING 1
-
-/* Define to 1 if you have the `sigrelse' function. */
-#define HAVE_SIGRELSE 1
-
-/* Define to 1 if you have the `sigtimedwait' function. */
-/* #undef HAVE_SIGTIMEDWAIT */
-
-/* Define to 1 if you have the `sigwait' function. */
-#define HAVE_SIGWAIT 1
-
-/* Define to 1 if you have the `sigwaitinfo' function. */
-/* #undef HAVE_SIGWAITINFO */
-
-/* Define to 1 if you have the `snprintf' function. */
-#define HAVE_SNPRINTF 1
-
-/* struct sockaddr_alg (linux/if_alg.h) */
-/* #undef HAVE_SOCKADDR_ALG */
-
-/* Define if sockaddr has sa_len member */
-#define HAVE_SOCKADDR_SA_LEN 1
-
-/* struct sockaddr_storage (sys/socket.h) */
-#define HAVE_SOCKADDR_STORAGE 1
-
-/* Define if you have the 'socketpair' function. */
-#define HAVE_SOCKETPAIR 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SPAWN_H 1
-
-/* Define if your compiler provides ssize_t */
-#define HAVE_SSIZE_T 1
-
-/* Define to 1 if you have the `statvfs' function. */
-#define HAVE_STATVFS 1
-
-/* Define if you have struct stat.st_mtim.tv_nsec */
-/* #undef HAVE_STAT_TV_NSEC */
-
-/* Define if you have struct stat.st_mtimensec */
-#define HAVE_STAT_TV_NSEC2 1
-
-/* Define if your compiler supports variable length function prototypes (e.g.
- void fprintf(FILE *, char *, ...);) *and* */
-#define HAVE_STDARG_PROTOTYPES 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_STDLIB_H 1
-
-/* Has stdatomic.h, atomic_int and _Atomic void* types work */
-/* #undef HAVE_STD_ATOMIC */
-
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* Define to 1 if you have the `strftime' function. */
-#define HAVE_STRFTIME 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `strlcpy' function. */
-#define HAVE_STRLCPY 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_STROPTS_H */
-
-/* Define to 1 if `pw_gecos' is a member of `struct passwd'. */
-#define HAVE_STRUCT_PASSWD_PW_GECOS 1
-
-/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */
-#define HAVE_STRUCT_PASSWD_PW_PASSWD 1
-
-/* Define to 1 if `st_birthtime' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1
-
-/* Define to 1 if `st_blksize' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
-
-/* Define to 1 if `st_blocks' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_BLOCKS 1
-
-/* Define to 1 if `st_flags' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_FLAGS 1
-
-/* Define to 1 if `st_gen' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_GEN 1
-
-/* Define to 1 if `st_rdev' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_RDEV 1
-
-/* Define to 1 if `tm_zone' is a member of `struct tm'. */
-#define HAVE_STRUCT_TM_TM_ZONE 1
-
-/* Define if you have the 'symlink' function. */
-#define HAVE_SYMLINK 1
-
-/* Define to 1 if you have the `symlinkat' function. */
-/* #undef HAVE_SYMLINKAT */
-
-/* Define to 1 if you have the `sync' function. */
-#define HAVE_SYNC 1
-
-/* Define to 1 if you have the `sysconf' function. */
-#define HAVE_SYSCONF 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYSEXITS_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_AUDIOIO_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_BSDTTY_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_DEVPOLL_H */
-
-/* Define to 1 if you have the header file, and it defines `DIR'.
- */
-/* #undef HAVE_SYS_DIR_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_ENDIAN_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_EPOLL_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_EVENT_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_FILE_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_IOCTL_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_KERN_CONTROL_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_LOADAVG_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_LOCK_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_MKDEV_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_MODEM_H */
-
-/* Define to 1 if you have the header file, and it defines `DIR'.
- */
-/* #undef HAVE_SYS_NDIR_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_PARAM_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_POLL_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_RANDOM_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_RESOURCE_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_SELECT_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_SENDFILE_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_SOCKET_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_STATVFS_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_SYSCALL_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_SYSMACROS_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_SYS_DOMAIN_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_TERMIO_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_TIMES_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_UIO_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_UN_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_UTSNAME_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_XATTR_H 1
-
-/* Define to 1 if you have the `tcgetpgrp' function. */
-#define HAVE_TCGETPGRP 1
-
-/* Define to 1 if you have the `tcsetpgrp' function. */
-#define HAVE_TCSETPGRP 1
-
-/* Define to 1 if you have the `tempnam' function. */
-#define HAVE_TEMPNAM 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_TERMIOS_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_TERM_H 1
-
-/* Define to 1 if you have the `tgamma' function. */
-#define HAVE_TGAMMA 1
-
-/* Define to 1 if you have the `timegm' function. */
-#define HAVE_TIMEGM 1
-
-/* Define to 1 if you have the `times' function. */
-#define HAVE_TIMES 1
-
-/* Define to 1 if you have the `tmpfile' function. */
-#define HAVE_TMPFILE 1
-
-/* Define to 1 if you have the `tmpnam' function. */
-#define HAVE_TMPNAM 1
-
-/* Define to 1 if you have the `tmpnam_r' function. */
-/* #undef HAVE_TMPNAM_R */
-
-/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
- `HAVE_STRUCT_TM_TM_ZONE' instead. */
-#define HAVE_TM_ZONE 1
-
-/* Define to 1 if you have the `truncate' function. */
-#define HAVE_TRUNCATE 1
-
-/* Define to 1 if you don't have `tm_zone' but do have the external array
- `tzname'. */
-/* #undef HAVE_TZNAME */
-
-/* Define this if you have tcl and TCL_UTF_MAX==6 */
-/* #undef HAVE_UCS4_TCL */
-
-/* Define to 1 if you have the `uname' function. */
-#define HAVE_UNAME 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the `unlinkat' function. */
-/* #undef HAVE_UNLINKAT */
-
-/* Define to 1 if you have the `unsetenv' function. */
-#define HAVE_UNSETENV 1
-
-/* Define if you have a useable wchar_t type defined in wchar.h; useable means
- wchar_t must be an unsigned type with at least 16 bits. (see
- Include/unicodeobject.h). */
-/* #undef HAVE_USABLE_WCHAR_T */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_UTIL_H 1
-
-/* Define to 1 if you have the `utimensat' function. */
-/* #undef HAVE_UTIMENSAT */
-
-/* Define to 1 if you have the `utimes' function. */
-#define HAVE_UTIMES 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_UTIME_H 1
-
-/* Define to 1 if you have the `wait3' function. */
-#define HAVE_WAIT3 1
-
-/* Define to 1 if you have the `wait4' function. */
-#define HAVE_WAIT4 1
-
-/* Define to 1 if you have the `waitid' function. */
-#define HAVE_WAITID 1
-
-/* Define to 1 if you have the `waitpid' function. */
-#define HAVE_WAITPID 1
-
-/* Define if the compiler provides a wchar.h header file. */
-#define HAVE_WCHAR_H 1
-
-/* Define to 1 if you have the `wcscoll' function. */
-#define HAVE_WCSCOLL 1
-
-/* Define to 1 if you have the `wcsftime' function. */
-#define HAVE_WCSFTIME 1
-
-/* Define to 1 if you have the `wcsxfrm' function. */
-#define HAVE_WCSXFRM 1
-
-/* Define to 1 if you have the `wmemcmp' function. */
-#define HAVE_WMEMCMP 1
-
-/* Define if tzset() actually switches the local timezone in a meaningful way.
- */
-#define HAVE_WORKING_TZSET 1
-
-/* Define to 1 if you have the `writev' function. */
-#define HAVE_WRITEV 1
-
-/* Define if the zlib library has inflateCopy */
-#define HAVE_ZLIB_COPY 1
-
-/* Define to 1 if you have the `_getpty' function. */
-/* #undef HAVE__GETPTY */
-
-/* Define if log1p(-0.) is 0. rather than -0. */
-/* #undef LOG1P_DROPS_ZERO_SIGN */
-
-/* Define to 1 if `major', `minor', and `makedev' are declared in .
- */
-/* #undef MAJOR_IN_MKDEV */
-
-/* Define to 1 if `major', `minor', and `makedev' are declared in
- . */
-/* #undef MAJOR_IN_SYSMACROS */
-
-/* Define if mvwdelch in curses.h is an expression. */
-#define MVWDELCH_IS_EXPRESSION 1
-
-/* Define to the address where bug reports for this package should be sent. */
-/* #undef PACKAGE_BUGREPORT */
-
-/* Define to the full name of this package. */
-/* #undef PACKAGE_NAME */
-
-/* Define to the full name and version of this package. */
-/* #undef PACKAGE_STRING */
-
-/* Define to the one symbol short name of this package. */
-/* #undef PACKAGE_TARNAME */
-
-/* Define to the home page for this package. */
-/* #undef PACKAGE_URL */
-
-/* Define to the version of this package. */
-/* #undef PACKAGE_VERSION */
-
-/* Define if POSIX semaphores aren't enabled on your system */
-/* #undef POSIX_SEMAPHORES_NOT_ENABLED */
-
-/* Defined if PTHREAD_SCOPE_SYSTEM supported. */
-#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1
-
-/* Define as the preferred size in bits of long digits */
-/* #undef PYLONG_BITS_IN_DIGIT */
-
-/* Define to printf format modifier for Py_ssize_t */
-#define PY_FORMAT_SIZE_T "z"
-
-/* Define if you want to build an interpreter with many run-time checks. */
-/* #undef Py_DEBUG */
-
-/* Defined if Python is built as a shared library. */
-/* #undef Py_ENABLE_SHARED */
-
-/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2,
- externally defined: 0 */
-/* #undef Py_HASH_ALGORITHM */
-
-/* assume C89 semantics that RETSIGTYPE is always void */
-#define RETSIGTYPE void
-
-/* Define if setpgrp() must be called as setpgrp(0, 0). */
-/* #undef SETPGRP_HAVE_ARG */
-
-/* Define if i>>j for signed int i does not extend the sign bit when i < 0 */
-/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */
-
-/* The size of `double', as computed by sizeof. */
-#define SIZEOF_DOUBLE 8
-
-/* The size of `float', as computed by sizeof. */
-#define SIZEOF_FLOAT 4
-
-/* The size of `fpos_t', as computed by sizeof. */
-#define SIZEOF_FPOS_T 8
-
-/* The size of `int', as computed by sizeof. */
-#define SIZEOF_INT 4
-
-/* The size of `long', as computed by sizeof. */
-#define SIZEOF_LONG 8
-
-/* The size of `long double', as computed by sizeof. */
-#define SIZEOF_LONG_DOUBLE 16
-
-/* The size of `long long', as computed by sizeof. */
-#define SIZEOF_LONG_LONG 8
-
-/* The size of `off_t', as computed by sizeof. */
-#define SIZEOF_OFF_T 8
-
-/* The size of `pid_t', as computed by sizeof. */
-#define SIZEOF_PID_T 4
-
-/* The size of `pthread_t', as computed by sizeof. */
-#define SIZEOF_PTHREAD_T 8
-
-/* The size of `short', as computed by sizeof. */
-#define SIZEOF_SHORT 2
-
-/* The size of `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 8
-
-/* The size of `time_t', as computed by sizeof. */
-#define SIZEOF_TIME_T 8
-
-/* The size of `uintptr_t', as computed by sizeof. */
-#define SIZEOF_UINTPTR_T 8
-
-/* The size of `void *', as computed by sizeof. */
-#define SIZEOF_VOID_P 8
-
-/* The size of `wchar_t', as computed by sizeof. */
-#define SIZEOF_WCHAR_T 4
-
-/* The size of `_Bool', as computed by sizeof. */
-#define SIZEOF__BOOL 1
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if you can safely include both and
- (which you can't on SCO ODT 3.0). */
-#define SYS_SELECT_WITH_SYS_TIME 1
-
-/* Define if tanh(-0.) is -0., or if platform doesn't have signed zeros */
-#define TANH_PRESERVES_ZERO_SIGN 1
-
-/* Library needed by timemodule.c: librt may be needed for clock_gettime() */
-/* #undef TIMEMODULE_LIB */
-
-/* Define to 1 if you can safely include both and . */
-#define TIME_WITH_SYS_TIME 1
-
-/* Define to 1 if your declares `struct tm'. */
-/* #undef TM_IN_SYS_TIME */
-
-/* Define if you want to use computed gotos in ceval.c. */
-#define USE_COMPUTED_GOTOS 1
-
-/* Define to use the C99 inline keyword. */
-#define USE_INLINE 1
-
-/* Enable extensions on AIX 3, Interix. */
-#ifndef _ALL_SOURCE
-# define _ALL_SOURCE 1
-#endif
-/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-#endif
-/* Enable threading extensions on Solaris. */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# define _POSIX_PTHREAD_SEMANTICS 1
-#endif
-/* Enable extensions on HP NonStop. */
-#ifndef _TANDEM_SOURCE
-# define _TANDEM_SOURCE 1
-#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# define __EXTENSIONS__ 1
-#endif
-
-
-/* Define if you want SIGFPE handled (see Include/pyfpe.h). */
-/* #undef WANT_SIGFPE_HANDLER */
-
-/* Define if WINDOW in curses.h offers a field _flags. */
-/* #undef WINDOW_HAS_FLAGS */
-
-/* Define if you want documentation strings in extension modules */
-#define WITH_DOC_STRINGS 1
-
-/* Define if you want to compile in DTrace support */
-/* #undef WITH_DTRACE */
-
-/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic
- linker (dyld) instead of the old-style (NextStep) dynamic linker (rld).
- Dyld is necessary to support frameworks. */
-#define WITH_DYLD 1
-
-/* Define to 1 if libintl is needed for locale functions. */
-/* #undef WITH_LIBINTL */
-
-/* Define if you want to produce an OpenStep/Rhapsody framework (shared
- library plus accessory files). */
-#define WITH_NEXT_FRAMEWORK 1
-
-/* Define if you want to compile in Python-specific mallocs */
-#define WITH_PYMALLOC 1
-
-/* Define if you want to compile in rudimentary thread support */
-#define WITH_THREAD 1
-
-/* Define if you want pymalloc to be disabled when running under valgrind */
-/* #undef WITH_VALGRIND */
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
- significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-# define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-/* # undef WORDS_BIGENDIAN */
-# endif
-#endif
-
-/* Define if arithmetic is subject to x87-style double rounding issue */
-/* #undef X87_DOUBLE_ROUNDING */
-
-/* Define on OpenBSD to activate all library features */
-/* #undef _BSD_SOURCE */
-
-/* Define on Irix to enable u_int */
-#define _BSD_TYPES 1
-
-/* Define on Darwin to activate all library features */
-#define _DARWIN_C_SOURCE 1
-
-/* This must be set to 64 on some systems to enable large file support. */
-#define _FILE_OFFSET_BITS 64
-
-/* Define on Linux to activate all library features */
-#define _GNU_SOURCE 1
-
-/* Define to include mbstate_t for mbrtowc */
-/* #undef _INCLUDE__STDC_A1_SOURCE */
-
-/* This must be defined on some systems to enable large file support. */
-#define _LARGEFILE_SOURCE 1
-
-/* This must be defined on AIX systems to enable large file support. */
-/* #undef _LARGE_FILES */
-
-/* Define to 1 if on MINIX. */
-/* #undef _MINIX */
-
-/* Define on NetBSD to activate all library features */
-#define _NETBSD_SOURCE 1
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
- this defined. */
-/* #undef _POSIX_1_SOURCE */
-
-/* Define to activate features from IEEE Stds 1003.1-2008 */
-/* #undef _POSIX_C_SOURCE */
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-/* #undef _POSIX_SOURCE */
-
-/* Define if you have POSIX threads, and your system does not define that. */
-/* #undef _POSIX_THREADS */
-
-/* Define to force use of thread-safe errno, h_errno, and other functions */
-#define _REENTRANT 1
-
-/* Define to the level of X/Open that your system supports */
-/* #undef _XOPEN_SOURCE */
-
-/* Define to activate Unix95-and-earlier features */
-/* #undef _XOPEN_SOURCE_EXTENDED */
-
-/* Define on FreeBSD to activate all library features */
-#define __BSD_VISIBLE 1
-
-/* Define to 1 if type `char' is unsigned and you are not using gcc. */
-#ifndef __CHAR_UNSIGNED__
-/* # undef __CHAR_UNSIGNED__ */
-#endif
-
-/* Define to 'long' if doesn't define. */
-/* #undef clock_t */
-
-/* Define to empty if `const' does not conform to ANSI C. */
-/* #undef const */
-
-/* Define to `int' if doesn't define. */
-/* #undef gid_t */
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-/* Define to `int' if does not define. */
-/* #undef mode_t */
-
-/* Define to `long int' if does not define. */
-/* #undef off_t */
-
-/* Define to `int' if does not define. */
-/* #undef pid_t */
-
-/* Define to empty if the keyword does not work. */
-/* #undef signed */
-
-/* Define to `unsigned int' if does not define. */
-/* #undef size_t */
-
-/* Define to `int' if does not define. */
-/* #undef socklen_t */
-
-/* Define to `int' if doesn't define. */
-/* #undef uid_t */
-
-/* Define to empty if the keyword does not work. */
-/* #undef volatile */
-
-
-/* Define the macros needed if on a UnixWare 7.x system. */
-#if defined(__USLC__) && defined(__SCO_VERSION__)
-#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
-#endif
-
-#endif /*Py_PYCONFIG_H*/
-
diff --git a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/config-3.6m-darwin/Makefile b/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/config-3.6m-darwin/Makefile
deleted file mode 100644
index 7e31d1b..0000000
--- a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/3.6/lib/python3.6/config-3.6m-darwin/Makefile
+++ /dev/null
@@ -1,1786 +0,0 @@
-# Generated automatically from Makefile.pre by makesetup.
-# Top-level Makefile for Python
-#
-# As distributed, this file is called Makefile.pre.in; it is processed
-# into the real Makefile by running the script ./configure, which
-# replaces things like @spam@ with values appropriate for your system.
-# This means that if you edit Makefile, your changes get lost the next
-# time you run the configure script. Ideally, you can do:
-#
-# ./configure
-# make
-# make test
-# make install
-#
-# If you have a previous version of Python installed that you don't
-# want to overwrite, you can use "make altinstall" instead of "make
-# install". Refer to the "Installing" section in the README file for
-# additional details.
-#
-# See also the section "Build instructions" in the README file.
-
-# === Variables set by makesetup ===
-
-MODNAMES= _thread posix errno pwd _sre _codecs _weakref _functools _operator _collections itertools atexit _signal _stat time _locale _io zipimport faulthandler _tracemalloc _symtable xxsubtype
-MODOBJS= Modules/_threadmodule.o Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/zipimport.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o
-MODLIBS= $(LOCALMODLIBS) $(BASEMODLIBS)
-
-# === Variables set by configure
-VERSION= 3.6
-srcdir= /Users/sysadmin/build/v3.6.3
-VPATH= /Users/sysadmin/build/v3.6.3
-abs_srcdir= /Users/sysadmin/build/v3.6.3
-abs_builddir= /private/tmp/_py/_bld/python
-
-
-CC= gcc-4.2
-CXX= g++-4.2
-MAINCC= $(CC)
-LINKCC= $(PURIFY) $(MAINCC)
-AR= ar
-RANLIB= ranlib
-READELF= :
-SOABI= cpython-36m-darwin
-LDVERSION= $(VERSION)$(ABIFLAGS)
-GITVERSION=
-GITTAG=
-GITBRANCH=
-PGO_PROF_GEN_FLAG=-fprofile-instr-generate
-PGO_PROF_USE_FLAG=-fprofile-instr-use=code.profclangd
-LLVM_PROF_MERGER='' merge -output=code.profclangd *.profclangr
-LLVM_PROF_FILE=LLVM_PROFILE_FILE="code-%p.profclangr"
-LLVM_PROF_ERR=yes
-DTRACE=
-DFLAGS=
-DTRACE_HEADERS=
-DTRACE_OBJS=
-
-GNULD= no
-
-# Shell used by make (some versions default to the login shell, which is bad)
-SHELL= /bin/sh
-
-# Use this to make a link between python$(VERSION) and python in $(BINDIR)
-LN= ln
-
-# Portable install script (configure doesn't always guess right)
-INSTALL= /usr/bin/install -c
-INSTALL_PROGRAM=${INSTALL}
-INSTALL_SCRIPT= ${INSTALL}
-INSTALL_DATA= ${INSTALL} -m 644
-# Shared libraries must be installed with executable mode on some systems;
-# rather than figuring out exactly which, we always give them executable mode.
-# Also, making them read-only seems to be a good idea...
-INSTALL_SHARED= ${INSTALL} -m 555
-
-MKDIR_P= /Users/sysadmin/build/v3.6.3/install-sh -c -d
-
-MAKESETUP= $(srcdir)/Modules/makesetup
-
-# Compiler options
-OPT= -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
-BASECFLAGS= -fno-strict-aliasing -Wsign-compare -fno-common -dynamic
-BASECPPFLAGS= -IObjects -IInclude -IPython
-CONFIGURE_CFLAGS= -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -g
-# CFLAGS_NODIST is used for building the interpreter and stdlib C extensions.
-# Use it when a compiler flag should _not_ be part of the distutils CFLAGS
-# once Python is installed (Issue #21121).
-CONFIGURE_CFLAGS_NODIST= -std=c99 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
-CONFIGURE_CPPFLAGS= -isysroot /Developer/SDKs/MacOSX10.6.sdk
-CONFIGURE_LDFLAGS= -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -g
-# Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
-# command line to append to these values without stomping the pre-set
-# values.
-PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
-PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST)
-# Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
-# be able to build extension modules using the directories specified in the
-# environment variables
-PY_CPPFLAGS= $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS)
-PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS)
-NO_AS_NEEDED=
-LDLAST=
-SGI_ABI=
-CCSHARED=
-LINKFORSHARED= -Wl,-stack_size,1000000 -framework CoreFoundation $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
-ARFLAGS= rc
-# Extra C flags added for building the interpreter object files.
-CFLAGSFORSHARED=$(CCSHARED)
-# C flags used for building the interpreter object files
-PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
-# Strict or non-strict aliasing flags used to compile dtoa.c, see above
-CFLAGS_ALIASING=
-
-
-# Machine-dependent subdirectories
-MACHDEP= darwin
-
-# Multiarch directory (may be empty)
-MULTIARCH= darwin
-MULTIARCH_CPPFLAGS = -DMULTIARCH=\"darwin\"
-
-# Install prefix for architecture-independent files
-prefix= /Library/Frameworks/Python.framework/Versions/3.6
-
-# Install prefix for architecture-dependent files
-exec_prefix= ${prefix}
-
-# Install prefix for data files
-datarootdir= ${prefix}/share
-
-# Expanded directories
-BINDIR= ${exec_prefix}/bin
-LIBDIR= ${exec_prefix}/lib
-MANDIR= ${datarootdir}/man
-INCLUDEDIR= ${prefix}/include
-CONFINCLUDEDIR= $(exec_prefix)/include
-SCRIPTDIR= $(prefix)/lib
-ABIFLAGS= m
-
-# Detailed destination directories
-BINLIBDEST= $(LIBDIR)/python$(VERSION)
-LIBDEST= $(SCRIPTDIR)/python$(VERSION)
-INCLUDEPY= $(INCLUDEDIR)/python$(LDVERSION)
-CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(LDVERSION)
-
-# Symbols used for using shared libraries
-SHLIB_SUFFIX= .so
-EXT_SUFFIX= .cpython-36m-darwin.so
-LDSHARED= $(CC) -bundle -undefined dynamic_lookup $(PY_LDFLAGS)
-BLDSHARED= $(CC) -bundle -undefined dynamic_lookup $(PY_LDFLAGS)
-LDCXXSHARED= $(CXX) -bundle -undefined dynamic_lookup
-DESTSHARED= $(BINLIBDEST)/lib-dynload
-
-# Executable suffix (.exe on Windows and Mac OS X)
-EXE=
-BUILDEXE= .exe
-
-# Short name and location for Mac OS X Python framework
-UNIVERSALSDK=/Developer/SDKs/MacOSX10.6.sdk
-PYTHONFRAMEWORK= Python
-PYTHONFRAMEWORKDIR= Python.framework
-PYTHONFRAMEWORKPREFIX= /Library/Frameworks
-PYTHONFRAMEWORKINSTALLDIR= /Library/Frameworks/Python.framework
-# Deployment target selected during configure, to be checked
-# by distutils. The export statement is needed to ensure that the
-# deployment target is active during build.
-MACOSX_DEPLOYMENT_TARGET=10.6
-export MACOSX_DEPLOYMENT_TARGET
-
-# Option to install to strip binaries
-STRIPFLAG=-s
-
-# Flags to lipo to produce a 32-bit-only universal executable
-LIPO_32BIT_FLAGS=-extract i386
-
-# Options to enable prebinding (for fast startup prior to Mac OS X 10.3)
-OTHER_LIBTOOL_OPT=
-
-# Environment to run shared python without installed libraries
-RUNSHARED= DYLD_FRAMEWORK_PATH=/private/tmp/_py/_bld/python
-
-# ensurepip options
-ENSUREPIP= no
-
-# Modes for directories, executables and data files created by the
-# install process. Default to user-only-writable for all file types.
-DIRMODE= 755
-EXEMODE= 755
-FILEMODE= 644
-
-# configure script arguments
-CONFIG_ARGS= '-C' '--enable-framework' '--enable-universalsdk=/Developer/SDKs/MacOSX10.6.sdk' '--with-universal-archs=intel' '--with-computed-gotos' '--without-ensurepip' 'LDFLAGS=-g' 'CFLAGS=-g' 'CC=gcc-4.2'
-
-
-# Subdirectories with code
-SRCDIRS= Parser Grammar Objects Python Modules Mac Programs
-
-# Other subdirectories
-SUBDIRSTOO= Include Lib Misc
-
-# Files and directories to be distributed
-CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in
-DISTFILES= README ChangeLog $(CONFIGFILES)
-DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy
-DIST= $(DISTFILES) $(DISTDIRS)
-
-
-LIBRARY= libpython$(VERSION)$(ABIFLAGS).a
-LDLIBRARY= $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
-BLDLIBRARY=
-PY3LIBRARY=
-DLLLIBRARY=
-LDLIBRARYDIR=
-INSTSONAME= $(LDLIBRARY)
-
-
-LIBS= -ldl -framework CoreFoundation
-LIBM=
-LIBC=
-SYSLIBS= $(LIBM) $(LIBC)
-SHLIBS= $(LIBS)
-
-THREADOBJ= Python/thread.o
-DLINCLDIR= .
-DYNLOADFILE= dynload_shlib.o
-MACHDEP_OBJS=
-LIBOBJDIR= Python/
-LIBOBJS=
-
-PYTHON= python$(EXE)
-BUILDPYTHON= python$(BUILDEXE)
-
-PYTHON_FOR_REGEN=python3
-PYTHON_FOR_BUILD=./$(BUILDPYTHON) -E
-_PYTHON_HOST_PLATFORM=
-BUILD_GNU_TYPE= x86_64-apple-darwin10.8.0
-HOST_GNU_TYPE= x86_64-apple-darwin10.8.0
-
-# Tcl and Tk config info from --with-tcltk-includes and -libs options
-TCLTK_INCLUDES=
-TCLTK_LIBS=
-
-# The task to run while instrumented when building the profile-opt target.
-# We exclude unittests with -x that take a rediculious amount of time to
-# run in the instrumented training build or do not provide much value.
-PROFILE_TASK=-m test.regrtest --pgo
-
-# report files for gcov / lcov coverage report
-COVERAGE_INFO= $(abs_builddir)/coverage.info
-COVERAGE_REPORT=$(abs_builddir)/lcov-report
-COVERAGE_REPORT_OPTIONS=--no-branch-coverage --title "CPython lcov report"
-
-
-# === Definitions added by makesetup ===
-
-LOCALMODLIBS=
-BASEMODLIBS=
-PYTHONPATH=$(COREPYTHONPATH)
-COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH)
-EXTRAMACHDEPPATH=
-MACHDEPPATH=:$(PLATDIR)
-TESTPATH=
-SITEPATH=
-DESTPATH=
-MACHDESTLIB=$(BINLIBDEST)
-DESTLIB=$(LIBDEST)
-
-
-##########################################################################
-# Modules
-MODULE_OBJS= \
- Modules/config.o \
- Modules/getpath.o \
- Modules/main.o \
- Modules/gcmodule.o
-
-IO_H= Modules/_io/_iomodule.h
-
-IO_OBJS= \
- Modules/_io/_iomodule.o \
- Modules/_io/iobase.o \
- Modules/_io/fileio.o \
- Modules/_io/bufferedio.o \
- Modules/_io/textio.o \
- Modules/_io/bytesio.o \
- Modules/_io/stringio.o
-
-##########################################################################
-
-LIBFFI_INCLUDEDIR=
-
-##########################################################################
-# Parser
-PGEN= Parser/pgen$(EXE)
-
-POBJS= \
- Parser/acceler.o \
- Parser/grammar1.o \
- Parser/listnode.o \
- Parser/node.o \
- Parser/parser.o \
- Parser/bitset.o \
- Parser/metagrammar.o \
- Parser/firstsets.o \
- Parser/grammar.o \
- Parser/pgen.o
-
-PARSER_OBJS= $(POBJS) Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o
-
-PGOBJS= \
- Objects/obmalloc.o \
- Python/dynamic_annotations.o \
- Python/mysnprintf.o \
- Python/pyctype.o \
- Parser/tokenizer_pgen.o \
- Parser/printgrammar.o \
- Parser/parsetok_pgen.o \
- Parser/pgenmain.o
-
-PARSER_HEADERS= \
- $(srcdir)/Parser/parser.h \
- $(srcdir)/Include/parsetok.h \
- $(srcdir)/Parser/tokenizer.h
-
-PGENOBJS= $(POBJS) $(PGOBJS)
-
-##########################################################################
-# Python
-
-PYTHON_OBJS= \
- Python/_warnings.o \
- Python/Python-ast.o \
- Python/asdl.o \
- Python/ast.o \
- Python/bltinmodule.o \
- Python/ceval.o \
- Python/compile.o \
- Python/codecs.o \
- Python/dynamic_annotations.o \
- Python/errors.o \
- Python/frozenmain.o \
- Python/future.o \
- Python/getargs.o \
- Python/getcompiler.o \
- Python/getcopyright.o \
- Python/getplatform.o \
- Python/getversion.o \
- Python/graminit.o \
- Python/import.o \
- Python/importdl.o \
- Python/marshal.o \
- Python/modsupport.o \
- Python/mystrtoul.o \
- Python/mysnprintf.o \
- Python/peephole.o \
- Python/pyarena.o \
- Python/pyctype.o \
- Python/pyfpe.o \
- Python/pyhash.o \
- Python/pylifecycle.o \
- Python/pymath.o \
- Python/pystate.o \
- Python/pythonrun.o \
- Python/pytime.o \
- Python/random.o \
- Python/structmember.o \
- Python/symtable.o \
- Python/sysmodule.o \
- Python/traceback.o \
- Python/getopt.o \
- Python/pystrcmp.o \
- Python/pystrtod.o \
- Python/pystrhex.o \
- Python/dtoa.o \
- Python/formatter_unicode.o \
- Python/fileutils.o \
- Python/$(DYNLOADFILE) \
- $(LIBOBJS) \
- $(MACHDEP_OBJS) \
- $(THREADOBJ) \
- $(DTRACE_OBJS)
-
-
-##########################################################################
-# Objects
-OBJECT_OBJS= \
- Objects/abstract.o \
- Objects/accu.o \
- Objects/boolobject.o \
- Objects/bytes_methods.o \
- Objects/bytearrayobject.o \
- Objects/bytesobject.o \
- Objects/cellobject.o \
- Objects/classobject.o \
- Objects/codeobject.o \
- Objects/complexobject.o \
- Objects/descrobject.o \
- Objects/enumobject.o \
- Objects/exceptions.o \
- Objects/genobject.o \
- Objects/fileobject.o \
- Objects/floatobject.o \
- Objects/frameobject.o \
- Objects/funcobject.o \
- Objects/iterobject.o \
- Objects/listobject.o \
- Objects/longobject.o \
- Objects/dictobject.o \
- Objects/odictobject.o \
- Objects/memoryobject.o \
- Objects/methodobject.o \
- Objects/moduleobject.o \
- Objects/namespaceobject.o \
- Objects/object.o \
- Objects/obmalloc.o \
- Objects/capsule.o \
- Objects/rangeobject.o \
- Objects/setobject.o \
- Objects/sliceobject.o \
- Objects/structseq.o \
- Objects/tupleobject.o \
- Objects/typeobject.o \
- Objects/unicodeobject.o \
- Objects/unicodectype.o \
- Objects/weakrefobject.o
-
-##########################################################################
-# objects that get linked into the Python library
-LIBRARY_OBJS_OMIT_FROZEN= \
- Modules/getbuildinfo.o \
- $(PARSER_OBJS) \
- $(OBJECT_OBJS) \
- $(PYTHON_OBJS) \
- $(MODULE_OBJS) \
- $(MODOBJS)
-
-LIBRARY_OBJS= \
- $(LIBRARY_OBJS_OMIT_FROZEN) \
- Python/frozen.o
-
-##########################################################################
-# DTrace
-
-# On some systems, object files that reference DTrace probes need to be modified
-# in-place by dtrace(1).
-DTRACE_DEPS = \
- Python/ceval.o
-# XXX: should gcmodule, etc. be here, too?
-
-#########################################################################
-# Rules
-
-# Default target
-all: build_all
-build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Programs/_testembed python-config
-
-# Compile a binary with profile guided optimization.
-profile-opt:
- @if [ $(LLVM_PROF_ERR) = yes ]; then \
- echo "Error: Cannot perform PGO build because llvm-profdata was not found in PATH" ;\
- echo "Please add it to PATH and run ./configure again" ;\
- exit 1;\
- fi
- @echo "Building with support for profile generation:"
- $(MAKE) clean
- $(MAKE) profile-removal
- $(MAKE) build_all_generate_profile
- $(MAKE) profile-removal
- @echo "Running code to generate profile data (this can take a while):"
- $(MAKE) run_profile_task
- $(MAKE) build_all_merge_profile
- @echo "Rebuilding with profile guided optimizations:"
- $(MAKE) clean
- $(MAKE) build_all_use_profile
- $(MAKE) profile-removal
-
-build_all_generate_profile:
- $(MAKE) all CFLAGS_NODIST="$(CFLAGS) $(PGO_PROF_GEN_FLAG) " LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) " LIBS="$(LIBS)"
-
-run_profile_task:
- : # FIXME: can't run for a cross build
- $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) || true
-
-build_all_merge_profile:
- $(LLVM_PROF_MERGER)
-
-build_all_use_profile:
- $(MAKE) all CFLAGS_NODIST="$(CFLAGS) $(PGO_PROF_USE_FLAG) " LDFLAGS="$(LDFLAGS) "
-
-# Compile and run with gcov
-.PHONY=coverage coverage-lcov coverage-report
-coverage:
- @echo "Building with support for coverage checking:"
- $(MAKE) clean profile-removal
- $(MAKE) all CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"
-
-coverage-lcov:
- @echo "Creating Coverage HTML report with LCOV:"
- @rm -f $(COVERAGE_INFO)
- @rm -rf $(COVERAGE_REPORT)
- @lcov --capture --directory $(abs_builddir) \
- --base-directory $(realpath $(abs_builddir)) \
- --path $(realpath $(abs_srcdir)) \
- --output-file $(COVERAGE_INFO)
- : # remove 3rd party modules, system headers and internal files with
- : # debug, test or dummy functions.
- @lcov --remove $(COVERAGE_INFO) \
- '*/Modules/_blake2/impl/*' \
- '*/Modules/_ctypes/libffi*/*' \
- '*/Modules/_decimal/libmpdec/*' \
- '*/Modules/_sha3/kcp/*' \
- '*/Modules/expat/*' \
- '*/Modules/zlib/*' \
- '*/Include/*' \
- '*/Modules/xx*.c' \
- '*/Parser/listnode.c' \
- '*/Python/pyfpe.c' \
- '*/Python/pystrcmp.c' \
- '/usr/include/*' \
- '/usr/local/include/*' \
- '/usr/lib/gcc/*' \
- --output-file $(COVERAGE_INFO)
- @genhtml $(COVERAGE_INFO) --output-directory $(COVERAGE_REPORT) \
- $(COVERAGE_REPORT_OPTIONS)
- @echo
- @echo "lcov report at $(COVERAGE_REPORT)/index.html"
- @echo
-
-# Force regeneration of parser and importlib
-coverage-report: regen-grammar regen-importlib
- : # force rebuilding of parser and importlib
- @touch $(GRAMMAR_INPUT)
- @touch $(srcdir)/Lib/importlib/_bootstrap.py
- @touch $(srcdir)/Lib/importlib/_bootstrap_external.py
- : # build with coverage info
- $(MAKE) coverage
- : # run tests, ignore failures
- $(TESTRUNNER) $(TESTOPTS) || true
- : # build lcov report
- $(MAKE) coverage-lcov
-
-# Run "Argument Clinic" over all source files
-# (depends on python having already been built)
-.PHONY=clinic
-clinic: $(BUILDPYTHON) $(srcdir)/Modules/_blake2/blake2s_impl.c
- $(RUNSHARED) $(PYTHON_FOR_BUILD) ./Tools/clinic/clinic.py --make
-
-# Build the interpreter
-$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
- $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-
-platform: $(BUILDPYTHON) pybuilddir.txt
- $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform
-
-# Create build directory and generate the sysconfig build-time data there.
-# pybuilddir.txt contains the name of the build dir and is used for
-# sys.path fixup -- see Modules/getpath.c.
-# Since this step runs before shared modules are built, try to avoid bootstrap
-# problems by creating a dummy pybuilddir.txt just to allow interpreter
-# initialization to succeed. It will be overwritten by generate-posix-vars
-# or removed in case of failure.
-pybuilddir.txt: $(BUILDPYTHON)
- @echo "none" > ./pybuilddir.txt
- $(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ;\
- if test $$? -ne 0 ; then \
- echo "generate-posix-vars failed" ; \
- rm -f ./pybuilddir.txt ; \
- exit 1 ; \
- fi
-
-# This is shared by the math and cmath modules
-Modules/_math.o: Modules/_math.c Modules/_math.h
- $(CC) -c $(CCSHARED) $(PY_CORE_CFLAGS) -o $@ $<
-
-# blake2s is auto-generated from blake2b
-$(srcdir)/Modules/_blake2/blake2s_impl.c: $(BUILDPYTHON) $(srcdir)/Modules/_blake2/blake2b_impl.c $(srcdir)/Modules/_blake2/blake2b2s.py
- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/Modules/_blake2/blake2b2s.py
- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/Tools/clinic/clinic.py -f $@
-
-# Build the shared modules
-# Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
-# -s, --silent or --quiet is always the first char.
-# Under BSD make, MAKEFLAGS might be " -s -v x=y".
-sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
- @case "$$MAKEFLAGS" in \
- *\ -s*|s*) quiet="-q";; \
- *) quiet="";; \
- esac; \
- $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
- _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
- $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
-
-
-# Build static library
-# avoid long command lines, same as LIBRARY_OBJS
-$(LIBRARY): $(LIBRARY_OBJS)
- -rm -f $@
- $(AR) $(ARFLAGS) $@ Modules/getbuildinfo.o
- $(AR) $(ARFLAGS) $@ $(PARSER_OBJS)
- $(AR) $(ARFLAGS) $@ $(OBJECT_OBJS)
- $(AR) $(ARFLAGS) $@ $(PYTHON_OBJS) Python/frozen.o
- $(AR) $(ARFLAGS) $@ $(MODULE_OBJS)
- $(AR) $(ARFLAGS) $@ $(MODOBJS)
- $(RANLIB) $@
-
-libpython$(LDVERSION).so: $(LIBRARY_OBJS)
- if test $(INSTSONAME) != $(LDLIBRARY); then \
- $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
- $(LN) -f $(INSTSONAME) $@; \
- else \
- $(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
- fi
-
-libpython3.so: libpython$(LDVERSION).so
- $(BLDSHARED) $(NO_AS_NEEDED) -o $@ -Wl,-h$@ $^
-
-libpython$(LDVERSION).dylib: $(LIBRARY_OBJS)
- $(CC) -dynamiclib -Wl,-single_module $(PY_LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(LDVERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
-
-
-libpython$(VERSION).sl: $(LIBRARY_OBJS)
- $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
-
-# Copy up the gdb python hooks into a position where they can be automatically
-# loaded by gdb during Lib/test/test_gdb.py
-#
-# Distributors are likely to want to install this somewhere else e.g. relative
-# to the stripped DWARF data for the shared library.
-gdbhooks: $(BUILDPYTHON)-gdb.py
-
-SRC_GDB_HOOKS=$(srcdir)/Tools/gdb/libpython.py
-$(BUILDPYTHON)-gdb.py: $(SRC_GDB_HOOKS)
- $(INSTALL_DATA) $(SRC_GDB_HOOKS) $(BUILDPYTHON)-gdb.py
-
-# This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary
-# minimal framework (not including the Lib directory and such) in the current
-# directory.
-RESSRCDIR=Mac/Resources/framework
-$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
- $(LIBRARY) \
- $(RESSRCDIR)/Info.plist
- $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
- $(CC) -o $(LDLIBRARY) $(PY_LDFLAGS) -dynamiclib \
- -all_load $(LIBRARY) -Wl,-single_module \
- -install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
- -compatibility_version $(VERSION) \
- -current_version $(VERSION) \
- -framework CoreFoundation $(LIBS);
- $(INSTALL) -d -m $(DIRMODE) \
- $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj
- $(INSTALL_DATA) $(RESSRCDIR)/Info.plist \
- $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist
- $(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current
- $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK)
- $(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources
-
-# This rule builds the Cygwin Python DLL and import library if configured
-# for a shared core library; otherwise, this rule is a noop.
-$(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
- if test -n "$(DLLLIBRARY)"; then \
- $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
- $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \
- else true; \
- fi
-
-
-oldsharedmods: $(SHAREDMODS)
-
-
-Makefile Modules/config.c: Makefile.pre \
- $(srcdir)/Modules/config.c.in \
- $(MAKESETUP) \
- Modules/Setup.config \
- Modules/Setup \
- Modules/Setup.local
- $(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
- -s Modules \
- Modules/Setup.config \
- Modules/Setup.local \
- Modules/Setup
- @mv config.c Modules
- @echo "The Makefile was updated, you may need to re-run make."
-
-
-Modules/Setup: $(srcdir)/Modules/Setup.dist
- @if test -f Modules/Setup; then \
- echo "-----------------------------------------------"; \
- echo "Modules/Setup.dist is newer than Modules/Setup;"; \
- echo "check to make sure you have all the updates you"; \
- echo "need in your Modules/Setup file."; \
- echo "Usually, copying Modules/Setup.dist to Modules/Setup will work."; \
- echo "-----------------------------------------------"; \
- fi
-
-Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
- $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-
-############################################################################
-# Importlib
-
-Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
-
-Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
- $(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-
-.PHONY: regen-importlib
-regen-importlib: Programs/_freeze_importlib
- # Regenerate Python/importlib_external.h
- # from Lib/importlib/_bootstrap_external.py using _freeze_importlib
- ./Programs/_freeze_importlib \
- $(srcdir)/Lib/importlib/_bootstrap_external.py \
- $(srcdir)/Python/importlib_external.h
- # Regenerate Python/importlib.h from Lib/importlib/_bootstrap.py
- # using _freeze_importlib
- ./Programs/_freeze_importlib \
- $(srcdir)/Lib/importlib/_bootstrap.py \
- $(srcdir)/Python/importlib.h
-
-
-############################################################################
-# Regenerate all generated files
-
-regen-all: regen-opcode regen-opcode-targets regen-typeslots regen-grammar regen-ast regen-importlib
-
-############################################################################
-# Special rules for object files
-
-Modules/getbuildinfo.o: $(PARSER_OBJS) \
- $(OBJECT_OBJS) \
- $(PYTHON_OBJS) \
- $(MODULE_OBJS) \
- $(MODOBJS) \
- $(srcdir)/Modules/getbuildinfo.c
- $(CC) -c $(PY_CORE_CFLAGS) \
- -DGITVERSION="\"`LC_ALL=C $(GITVERSION)`\"" \
- -DGITTAG="\"`LC_ALL=C $(GITTAG)`\"" \
- -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \
- -o $@ $(srcdir)/Modules/getbuildinfo.c
-
-Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
- $(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
- -DPREFIX='"$(prefix)"' \
- -DEXEC_PREFIX='"$(exec_prefix)"' \
- -DVERSION='"$(VERSION)"' \
- -DVPATH='"$(VPATH)"' \
- -o $@ $(srcdir)/Modules/getpath.c
-
-Programs/python.o: $(srcdir)/Programs/python.c
- $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/python.c
-
-Programs/_testembed.o: $(srcdir)/Programs/_testembed.c
- $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/_testembed.c
-
-Modules/_sre.o: $(srcdir)/Modules/_sre.c $(srcdir)/Modules/sre.h $(srcdir)/Modules/sre_constants.h $(srcdir)/Modules/sre_lib.h
-
-Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c $(srcdir)/Modules/posixmodule.h
-
-Modules/grpmodule.o: $(srcdir)/Modules/grpmodule.c $(srcdir)/Modules/posixmodule.h
-
-Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule.h
-
-Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c $(srcdir)/Modules/posixmodule.h
-
-Python/dynload_shlib.o: $(srcdir)/Python/dynload_shlib.c Makefile
- $(CC) -c $(PY_CORE_CFLAGS) \
- -DSOABI='"$(SOABI)"' \
- -o $@ $(srcdir)/Python/dynload_shlib.c
-
-Python/dynload_hpux.o: $(srcdir)/Python/dynload_hpux.c Makefile
- $(CC) -c $(PY_CORE_CFLAGS) \
- -DSHLIB_EXT='"$(EXT_SUFFIX)"' \
- -o $@ $(srcdir)/Python/dynload_hpux.c
-
-Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile
- $(CC) -c $(PY_CORE_CFLAGS) \
- -DABIFLAGS='"$(ABIFLAGS)"' \
- $(MULTIARCH_CPPFLAGS) \
- -o $@ $(srcdir)/Python/sysmodule.c
-
-$(IO_OBJS): $(IO_H)
-
-$(PGEN): $(PGENOBJS)
- $(CC) $(OPT) $(PY_LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
-
-.PHONY: regen-grammar
-regen-grammar: $(PGEN)
- # Regenerate Include/graminit.h and Python/graminit.c
- # from Grammar/Grammar using pgen
- @$(MKDIR_P) Include
- $(PGEN) $(srcdir)/Grammar/Grammar \
- $(srcdir)/Include/graminit.h \
- $(srcdir)/Python/graminit.c
-
-Parser/grammar.o: $(srcdir)/Parser/grammar.c \
- $(srcdir)/Include/token.h \
- $(srcdir)/Include/grammar.h
-Parser/metagrammar.o: $(srcdir)/Parser/metagrammar.c
-
-Parser/tokenizer_pgen.o: $(srcdir)/Parser/tokenizer.c
-Parser/parsetok_pgen.o: $(srcdir)/Parser/parsetok.c
-Parser/printgrammar.o: $(srcdir)/Parser/printgrammar.c
-
-Parser/pgenmain.o: $(srcdir)/Include/parsetok.h
-
-.PHONY=regen-ast
-regen-ast:
- # Regenerate Include/Python-ast.h using Parser/asdl_c.py -h
- $(MKDIR_P) $(srcdir)/Include
- $(PYTHON_FOR_REGEN) $(srcdir)/Parser/asdl_c.py \
- -h $(srcdir)/Include \
- $(srcdir)/Parser/Python.asdl
- # Regenerate Python/Python-ast.c using Parser/asdl_c.py -c
- $(MKDIR_P) $(srcdir)/Python
- $(PYTHON_FOR_REGEN) $(srcdir)/Parser/asdl_c.py \
- -c $(srcdir)/Python \
- $(srcdir)/Parser/Python.asdl
-
-.PHONY: regen-opcode
-regen-opcode:
- # Regenerate Include/opcode.h from Lib/opcode.py
- # using Tools/scripts/generate_opcode_h.py
- $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_opcode_h.py \
- $(srcdir)/Lib/opcode.py \
- $(srcdir)/Include/opcode.h
-
-Python/compile.o Python/symtable.o Python/ast.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
-
-Python/getplatform.o: $(srcdir)/Python/getplatform.c
- $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
-
-Python/importdl.o: $(srcdir)/Python/importdl.c
- $(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
-
-Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \
- $(srcdir)/Objects/unicodetype_db.h
-
-BYTESTR_DEPS = \
- $(srcdir)/Objects/stringlib/count.h \
- $(srcdir)/Objects/stringlib/ctype.h \
- $(srcdir)/Objects/stringlib/fastsearch.h \
- $(srcdir)/Objects/stringlib/find.h \
- $(srcdir)/Objects/stringlib/join.h \
- $(srcdir)/Objects/stringlib/partition.h \
- $(srcdir)/Objects/stringlib/split.h \
- $(srcdir)/Objects/stringlib/stringdefs.h \
- $(srcdir)/Objects/stringlib/transmogrify.h
-
-UNICODE_DEPS = \
- $(srcdir)/Objects/stringlib/asciilib.h \
- $(srcdir)/Objects/stringlib/codecs.h \
- $(srcdir)/Objects/stringlib/count.h \
- $(srcdir)/Objects/stringlib/fastsearch.h \
- $(srcdir)/Objects/stringlib/find.h \
- $(srcdir)/Objects/stringlib/find_max_char.h \
- $(srcdir)/Objects/stringlib/localeutil.h \
- $(srcdir)/Objects/stringlib/partition.h \
- $(srcdir)/Objects/stringlib/replace.h \
- $(srcdir)/Objects/stringlib/split.h \
- $(srcdir)/Objects/stringlib/ucs1lib.h \
- $(srcdir)/Objects/stringlib/ucs2lib.h \
- $(srcdir)/Objects/stringlib/ucs4lib.h \
- $(srcdir)/Objects/stringlib/undef.h \
- $(srcdir)/Objects/stringlib/unicode_format.h \
- $(srcdir)/Objects/stringlib/unicodedefs.h
-
-Objects/bytes_methods.o: $(srcdir)/Objects/bytes_methods.c $(BYTESTR_DEPS)
-Objects/bytesobject.o: $(srcdir)/Objects/bytesobject.c $(BYTESTR_DEPS)
-Objects/bytearrayobject.o: $(srcdir)/Objects/bytearrayobject.c $(BYTESTR_DEPS)
-
-Objects/unicodeobject.o: $(srcdir)/Objects/unicodeobject.c $(UNICODE_DEPS)
-
-Objects/odictobject.o: $(srcdir)/Objects/dict-common.h
-Objects/dictobject.o: $(srcdir)/Objects/stringlib/eq.h $(srcdir)/Objects/dict-common.h
-Objects/setobject.o: $(srcdir)/Objects/stringlib/eq.h
-
-.PHONY: regen-opcode-targets
-regen-opcode-targets:
- # Regenerate Python/opcode_targets.h from Lib/opcode.py
- # using Python/makeopcodetargets.py
- $(PYTHON_FOR_REGEN) $(srcdir)/Python/makeopcodetargets.py \
- $(srcdir)/Python/opcode_targets.h
-
-Python/ceval.o: $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/ceval_gil.h
-
-Python/frozen.o: $(srcdir)/Python/importlib.h $(srcdir)/Python/importlib_external.h
-
-# Generate DTrace probe macros, then rename them (PYTHON_ -> PyDTrace_) to
-# follow our naming conventions. dtrace(1) uses the output filename to generate
-# an include guard, so we can't use a pipeline to transform its output.
-Include/pydtrace_probes.h: $(srcdir)/Include/pydtrace.d
- $(MKDIR_P) Include
- $(DTRACE) $(DFLAGS) -o $@ -h -s $<
- : sed in-place edit with POSIX-only tools
- sed 's/PYTHON_/PyDTrace_/' $@ > $@.tmp
- mv $@.tmp $@
-
-Python/pydtrace.o: $(srcdir)/Include/pydtrace.d $(DTRACE_DEPS)
- $(DTRACE) $(DFLAGS) -o $@ -G -s $< $(DTRACE_DEPS)
-
-Objects/typeobject.o: Objects/typeslots.inc
-
-.PHONY: regen-typeslots
-regen-typeslots:
- # Regenerate Objects/typeslots.inc from Include/typeslotsh
- # using Objects/typeslots.py
- $(PYTHON_FOR_REGEN) $(srcdir)/Objects/typeslots.py \
- < $(srcdir)/Include/typeslots.h \
- $(srcdir)/Objects/typeslots.inc
-
-############################################################################
-# Header files
-
-PYTHON_HEADERS= \
- $(srcdir)/Include/Python.h \
- $(srcdir)/Include/abstract.h \
- $(srcdir)/Include/accu.h \
- $(srcdir)/Include/asdl.h \
- $(srcdir)/Include/ast.h \
- $(srcdir)/Include/bltinmodule.h \
- $(srcdir)/Include/bitset.h \
- $(srcdir)/Include/boolobject.h \
- $(srcdir)/Include/bytes_methods.h \
- $(srcdir)/Include/bytearrayobject.h \
- $(srcdir)/Include/bytesobject.h \
- $(srcdir)/Include/cellobject.h \
- $(srcdir)/Include/ceval.h \
- $(srcdir)/Include/classobject.h \
- $(srcdir)/Include/code.h \
- $(srcdir)/Include/codecs.h \
- $(srcdir)/Include/compile.h \
- $(srcdir)/Include/complexobject.h \
- $(srcdir)/Include/descrobject.h \
- $(srcdir)/Include/dictobject.h \
- $(srcdir)/Include/dtoa.h \
- $(srcdir)/Include/dynamic_annotations.h \
- $(srcdir)/Include/enumobject.h \
- $(srcdir)/Include/errcode.h \
- $(srcdir)/Include/eval.h \
- $(srcdir)/Include/fileobject.h \
- $(srcdir)/Include/fileutils.h \
- $(srcdir)/Include/floatobject.h \
- $(srcdir)/Include/frameobject.h \
- $(srcdir)/Include/funcobject.h \
- $(srcdir)/Include/genobject.h \
- $(srcdir)/Include/import.h \
- $(srcdir)/Include/intrcheck.h \
- $(srcdir)/Include/iterobject.h \
- $(srcdir)/Include/listobject.h \
- $(srcdir)/Include/longintrepr.h \
- $(srcdir)/Include/longobject.h \
- $(srcdir)/Include/marshal.h \
- $(srcdir)/Include/memoryobject.h \
- $(srcdir)/Include/metagrammar.h \
- $(srcdir)/Include/methodobject.h \
- $(srcdir)/Include/modsupport.h \
- $(srcdir)/Include/moduleobject.h \
- $(srcdir)/Include/namespaceobject.h \
- $(srcdir)/Include/node.h \
- $(srcdir)/Include/object.h \
- $(srcdir)/Include/objimpl.h \
- $(srcdir)/Include/opcode.h \
- $(srcdir)/Include/osdefs.h \
- $(srcdir)/Include/osmodule.h \
- $(srcdir)/Include/patchlevel.h \
- $(srcdir)/Include/pgen.h \
- $(srcdir)/Include/pgenheaders.h \
- $(srcdir)/Include/pyarena.h \
- $(srcdir)/Include/pyatomic.h \
- $(srcdir)/Include/pycapsule.h \
- $(srcdir)/Include/pyctype.h \
- $(srcdir)/Include/pydebug.h \
- $(srcdir)/Include/pydtrace.h \
- $(srcdir)/Include/pyerrors.h \
- $(srcdir)/Include/pyfpe.h \
- $(srcdir)/Include/pyhash.h \
- $(srcdir)/Include/pylifecycle.h \
- $(srcdir)/Include/pymath.h \
- $(srcdir)/Include/pygetopt.h \
- $(srcdir)/Include/pymacro.h \
- $(srcdir)/Include/pymem.h \
- $(srcdir)/Include/pyport.h \
- $(srcdir)/Include/pystate.h \
- $(srcdir)/Include/pystrcmp.h \
- $(srcdir)/Include/pystrtod.h \
- $(srcdir)/Include/pystrhex.h \
- $(srcdir)/Include/pythonrun.h \
- $(srcdir)/Include/pythread.h \
- $(srcdir)/Include/pytime.h \
- $(srcdir)/Include/rangeobject.h \
- $(srcdir)/Include/setobject.h \
- $(srcdir)/Include/sliceobject.h \
- $(srcdir)/Include/structmember.h \
- $(srcdir)/Include/structseq.h \
- $(srcdir)/Include/symtable.h \
- $(srcdir)/Include/sysmodule.h \
- $(srcdir)/Include/traceback.h \
- $(srcdir)/Include/tupleobject.h \
- $(srcdir)/Include/ucnhash.h \
- $(srcdir)/Include/unicodeobject.h \
- $(srcdir)/Include/warnings.h \
- $(srcdir)/Include/weakrefobject.h \
- pyconfig.h \
- $(PARSER_HEADERS) \
- $(srcdir)/Include/Python-ast.h \
- $(DTRACE_HEADERS)
-
-$(LIBRARY_OBJS) $(MODOBJS) Programs/python.o: $(PYTHON_HEADERS)
-
-
-######################################################################
-
-TESTOPTS= $(EXTRATESTOPTS)
-TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) $(TESTPYTHONOPTS)
-TESTRUNNER= $(TESTPYTHON) $(srcdir)/Tools/scripts/run_tests.py
-TESTTIMEOUT= 1200
-
-.PHONY: test testall testuniversal buildbottest pythoninfo
-
-# Run a basic set of regression tests.
-# This excludes some tests that are particularly resource-intensive.
-test: all platform
- $(TESTRUNNER) $(TESTOPTS)
-
-# Run the full test suite twice - once without .pyc files, and once with.
-# In the past, we've had problems where bugs in the marshalling or
-# elsewhere caused bytecode read from .pyc files to behave differently
-# than bytecode generated directly from a .py source file. Sometimes
-# the bytecode read from a .pyc file had the bug, sometimes the directly
-# generated bytecode. This is sometimes a very shy bug needing a lot of
-# sample data.
-testall: all platform
- -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
- $(TESTPYTHON) -E $(srcdir)/Lib/compileall.py
- -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
- -$(TESTRUNNER) -u all $(TESTOPTS)
- $(TESTRUNNER) -u all $(TESTOPTS)
-
-# Run the test suite for both architectures in a Universal build on OSX.
-# Must be run on an Intel box.
-testuniversal: all platform
- if [ `arch` != 'i386' ];then \
- echo "This can only be used on OSX/i386" ;\
- exit 1 ;\
- fi
- $(TESTRUNNER) -u all $(TESTOPTS)
- $(RUNSHARED) /usr/libexec/oah/translate \
- ./$(BUILDPYTHON) -E -m test -j 0 -u all $(TESTOPTS)
-
-# Like testall, but with only one pass and without multiple processes.
-# Run an optional script to include information about the build environment.
-buildbottest: build_all platform
- -@if which pybuildbot.identify >/dev/null 2>&1; then \
- pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \
- fi
- $(TESTRUNNER) -j 1 -u all -W --slowest --timeout=$(TESTTIMEOUT) $(TESTOPTS)
-
-pythoninfo: build_all
- $(RUNSHARED) ./$(BUILDPYTHON) -m test.pythoninfo
-
-QUICKTESTOPTS= $(TESTOPTS) -x test_subprocess test_io test_lib2to3 \
- test_multibytecodec test_urllib2_localnet test_itertools \
- test_multiprocessing_fork test_multiprocessing_spawn \
- test_multiprocessing_forkserver \
- test_mailbox test_socket test_poll \
- test_select test_zipfile test_concurrent_futures
-quicktest: all platform
- $(TESTRUNNER) $(QUICKTESTOPTS)
-
-# SSL tests
-.PHONY: multisslcompile multissltest
-multisslcompile: build_all
- $(RUNSHARED) ./$(BUILDPYTHON) Tools/ssl/multissltests.py --compile-only
-
-multissltest: build_all
- $(RUNSHARED) ./$(BUILDPYTHON) Tools/ssl/multissltests.py
-
-install: frameworkinstallstructure commoninstall bininstall maninstall frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
- if test "x$(ENSUREPIP)" != "xno" ; then \
- case $(ENSUREPIP) in \
- upgrade) ensurepip="--upgrade" ;; \
- install|*) ensurepip="" ;; \
- esac; \
- $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
- $$ensurepip --root=$(DESTDIR)/ ; \
- fi
-
-altinstall: commoninstall
- if test "x$(ENSUREPIP)" != "xno" ; then \
- case $(ENSUREPIP) in \
- upgrade) ensurepip="--altinstall --upgrade" ;; \
- install|*) ensurepip="--altinstall" ;; \
- esac; \
- $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
- $$ensurepip --root=$(DESTDIR)/ ; \
- fi
-
-commoninstall: frameworkinstallstructure \
- altbininstall libinstall inclinstall libainstall \
- sharedinstall oldsharedinstall altmaninstall \
- frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools
-
-# Install shared libraries enabled by Setup
-DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)
-
-oldsharedinstall: $(DESTSHARED) $(SHAREDMODS)
- @for i in X $(SHAREDMODS); do \
- if test $$i != X; then \
- echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \
- $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \
- fi; \
- done
-
-$(DESTSHARED):
- @for i in $(DESTDIRS); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
-
-# Install the interpreter with $(VERSION) affixed
-# This goes into $(exec_prefix)
-altbininstall: $(BUILDPYTHON) frameworkpythonw
- @for i in $(BINDIR) $(LIBDIR); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- if test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \
- $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \
- else \
- $(INSTALL_PROGRAM) $(STRIPFLAG) Mac/pythonw $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \
- fi
- -if test "$(VERSION)" != "$(LDVERSION)"; then \
- if test -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE) -o -h $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
- then rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
- fi; \
- (cd $(DESTDIR)$(BINDIR); $(LN) python$(LDVERSION)$(EXE) python$(VERSION)$(EXE)); \
- fi
- if test -f $(LDLIBRARY) && test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \
- if test -n "$(DLLLIBRARY)" ; then \
- $(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \
- else \
- $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \
- if test $(LDLIBRARY) != $(INSTSONAME); then \
- (cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) $(LDLIBRARY)) \
- fi \
- fi; \
- if test -n "$(PY3LIBRARY)"; then \
- $(INSTALL_SHARED) $(PY3LIBRARY) $(DESTDIR)$(LIBDIR)/$(PY3LIBRARY); \
- fi; \
- else true; \
- fi
- if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \
- rm -f $(DESTDIR)$(BINDIR)python$(VERSION)-32$(EXE); \
- lipo $(LIPO_32BIT_FLAGS) \
- -output $(DESTDIR)$(BINDIR)/python$(VERSION)-32$(EXE) \
- $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
- fi
-
-bininstall: altbininstall
- if test ! -d $(DESTDIR)$(LIBPC); then \
- echo "Creating directory $(LIBPC)"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC); \
- fi
- -if test -f $(DESTDIR)$(BINDIR)/python3$(EXE) -o -h $(DESTDIR)$(BINDIR)/python3$(EXE); \
- then rm -f $(DESTDIR)$(BINDIR)/python3$(EXE); \
- else true; \
- fi
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python3$(EXE))
- -if test "$(VERSION)" != "$(LDVERSION)"; then \
- rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \
- rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION).pc; \
- (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python-$(LDVERSION).pc); \
- fi
- -rm -f $(DESTDIR)$(BINDIR)/python3-config
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python3-config)
- -rm -f $(DESTDIR)$(LIBPC)/python3.pc
- (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc)
- -rm -f $(DESTDIR)$(BINDIR)/idle3
- (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
- -rm -f $(DESTDIR)$(BINDIR)/pydoc3
- (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
- -rm -f $(DESTDIR)$(BINDIR)/2to3
- (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
- -rm -f $(DESTDIR)$(BINDIR)/pyvenv
- (cd $(DESTDIR)$(BINDIR); $(LN) -s pyvenv-$(VERSION) pyvenv)
- if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \
- rm -f $(DESTDIR)$(BINDIR)/python3-32$(EXE); \
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-32$(EXE) python3-32$(EXE)) \
- fi
-
-# Install the versioned manual page
-altmaninstall:
- @for i in $(MANDIR) $(MANDIR)/man1; \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- $(INSTALL_DATA) $(srcdir)/Misc/python.man \
- $(DESTDIR)$(MANDIR)/man1/python$(VERSION).1
-
-# Install the unversioned manual page
-maninstall: altmaninstall
- -rm -f $(DESTDIR)$(MANDIR)/man1/python3.1
- (cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python$(VERSION).1 python3.1)
-
-# Install the library
-XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax
-LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
- tkinter/test/test_ttk site-packages test \
- test/audiodata \
- test/capath test/data \
- test/cjkencodings test/decimaltestdata test/xmltestdata \
- test/dtracedata \
- test/eintrdata \
- test/imghdrdata \
- test/libregrtest \
- test/subprocessdata test/sndhdrdata test/support \
- test/tracedmodules test/encoded_modules \
- test/test_import \
- test/test_import/data \
- test/test_import/data/circular_imports \
- test/test_import/data/circular_imports/subpkg \
- test/test_import/data/package \
- test/test_import/data/package2 \
- test/test_importlib/namespace_pkgs \
- test/test_importlib/namespace_pkgs/both_portions \
- test/test_importlib/namespace_pkgs/both_portions/foo \
- test/test_importlib/namespace_pkgs/not_a_namespace_pkg \
- test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo \
- test/test_importlib/namespace_pkgs/portion1 \
- test/test_importlib/namespace_pkgs/portion1/foo \
- test/test_importlib/namespace_pkgs/portion2 \
- test/test_importlib/namespace_pkgs/portion2/foo \
- test/test_importlib/namespace_pkgs/project1 \
- test/test_importlib/namespace_pkgs/project1/parent \
- test/test_importlib/namespace_pkgs/project1/parent/child \
- test/test_importlib/namespace_pkgs/project2 \
- test/test_importlib/namespace_pkgs/project2/parent \
- test/test_importlib/namespace_pkgs/project2/parent/child \
- test/test_importlib/namespace_pkgs/project3 \
- test/test_importlib/namespace_pkgs/project3/parent \
- test/test_importlib/namespace_pkgs/project3/parent/child \
- test/test_importlib/namespace_pkgs/module_and_namespace_package \
- test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
- asyncio \
- test/test_asyncio \
- collections concurrent concurrent/futures encodings \
- email email/mime test/test_email test/test_email/data \
- ensurepip ensurepip/_bundled \
- html json test/test_json http dbm xmlrpc \
- sqlite3 sqlite3/test \
- logging csv wsgiref urllib \
- lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
- lib2to3/tests/data lib2to3/tests/data/fixers \
- lib2to3/tests/data/fixers/myfixes \
- ctypes ctypes/test ctypes/macholib \
- idlelib idlelib/Icons idlelib/idle_test \
- distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
- importlib test/test_importlib test/test_importlib/builtin \
- test/test_importlib/extension test/test_importlib/frozen \
- test/test_importlib/import_ test/test_importlib/source \
- test/test_tools test/test_warnings test/test_warnings/data \
- turtledemo \
- multiprocessing multiprocessing/dummy \
- unittest unittest/test unittest/test/testmock \
- venv venv/scripts venv/scripts/common venv/scripts/posix \
- curses pydoc_data
-libinstall: build_all $(srcdir)/Modules/xxmodule.c
- @for i in $(SCRIPTDIR) $(LIBDEST); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- @for d in $(LIBSUBDIRS); \
- do \
- a=$(srcdir)/Lib/$$d; \
- if test ! -d $$a; then continue; else true; fi; \
- b=$(LIBDEST)/$$d; \
- if test ! -d $(DESTDIR)$$b; then \
- echo "Creating directory $$b"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$b; \
- else true; \
- fi; \
- done
- @for i in $(srcdir)/Lib/*.py; \
- do \
- if test -x $$i; then \
- $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
- echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \
- else \
- $(INSTALL_DATA) $$i $(DESTDIR)$(LIBDEST); \
- echo $(INSTALL_DATA) $$i $(LIBDEST); \
- fi; \
- done
- @for d in $(LIBSUBDIRS); \
- do \
- a=$(srcdir)/Lib/$$d; \
- if test ! -d $$a; then continue; else true; fi; \
- if test `ls $$a | wc -l` -lt 1; then continue; fi; \
- b=$(LIBDEST)/$$d; \
- for i in $$a/*; \
- do \
- case $$i in \
- *CVS) ;; \
- *.py[co]) ;; \
- *.orig) ;; \
- *~) ;; \
- *) \
- if test -d $$i; then continue; fi; \
- if test -x $$i; then \
- echo $(INSTALL_SCRIPT) $$i $$b; \
- $(INSTALL_SCRIPT) $$i $(DESTDIR)$$b; \
- else \
- echo $(INSTALL_DATA) $$i $$b; \
- $(INSTALL_DATA) $$i $(DESTDIR)$$b; \
- fi;; \
- esac; \
- done; \
- done
- $(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py \
- $(DESTDIR)$(LIBDEST); \
- $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
- if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
- $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
- $(DESTDIR)$(LIBDEST)/distutils/tests ; \
- fi
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- $(DESTDIR)$(LIBDEST)
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- $(DESTDIR)$(LIBDEST)
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- $(DESTDIR)$(LIBDEST)
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
-
-python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh
- # Substitution happens here, as the completely-expanded BINDIR
- # is not available in configure
- sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py
- # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR}
- LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config
- # On Darwin, always use the python version of the script, the shell
- # version doesn't use the compiler customizations that are provided
- # in python (_osx_support.py).
- if test `uname -s` = Darwin; then \
- cp python-config.py python-config; \
- fi
-
-
-# Install the include files
-INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
-inclinstall:
- @for i in $(INCLDIRSTOMAKE); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- @for i in $(srcdir)/Include/*.h; \
- do \
- echo $(INSTALL_DATA) $$i $(INCLUDEPY); \
- $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \
- done
- $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
-
-# Install the library and miscellaneous stuff needed for extending/embedding
-# This goes into $(exec_prefix)
-LIBPL= $(prefix)/lib/python3.6/config-$(VERSION)$(ABIFLAGS)-darwin
-
-# pkgconfig directory
-LIBPC= $(LIBDIR)/pkgconfig
-
-libainstall: all python-config
- @for i in $(LIBDIR) $(LIBPL) $(LIBPC); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- @if test -d $(LIBRARY); then :; else \
- if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
- if test "$(SHLIB_SUFFIX)" = .dll; then \
- $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
- else \
- $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
- $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
- fi; \
- else \
- echo Skip install of $(LIBRARY) - use make frameworkinstall; \
- fi; \
- fi
- $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c
- $(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o
- $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
- $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
- $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
- $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
- $(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config
- $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
- $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
- $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
- $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py
- $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config
- @if [ -s Modules/python.exp -a \
- "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
- echo; echo "Installing support files for building shared extension modules on AIX:"; \
- $(INSTALL_DATA) Modules/python.exp \
- $(DESTDIR)$(LIBPL)/python.exp; \
- echo; echo "$(LIBPL)/python.exp"; \
- $(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix \
- $(DESTDIR)$(LIBPL)/makexp_aix; \
- echo "$(LIBPL)/makexp_aix"; \
- $(INSTALL_SCRIPT) Modules/ld_so_aix \
- $(DESTDIR)$(LIBPL)/ld_so_aix; \
- echo "$(LIBPL)/ld_so_aix"; \
- echo; echo "See Misc/AIX-NOTES for details."; \
- else true; \
- fi
-
-# Install the dynamically loadable modules
-# This goes into $(exec_prefix)
-sharedinstall: sharedmods
- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
- --prefix=$(prefix) \
- --install-scripts=$(BINDIR) \
- --install-platlib=$(DESTSHARED) \
- --root=$(DESTDIR)/
- -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py
- -rm -r $(DESTDIR)$(DESTSHARED)/__pycache__
-
-# Here are a couple of targets for MacOSX again, to install a full
-# framework-based Python. frameworkinstall installs everything, the
-# subtargets install specific parts. Much of the actual work is offloaded to
-# the Makefile in Mac
-#
-#
-# This target is here for backward compatibility, previous versions of Python
-# hadn't integrated framework installation in the normal install process.
-frameworkinstall: install
-
-# On install, we re-make the framework
-# structure in the install location, /Library/Frameworks/ or the argument to
-# --enable-framework. If --enable-framework has been specified then we have
-# automatically set prefix to the location deep down in the framework, so we
-# only have to cater for the structural bits of the framework.
-
-frameworkinstallframework: frameworkinstallstructure install frameworkinstallmaclib
-
-frameworkinstallstructure: $(LDLIBRARY)
- @if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
- echo Not configured with --enable-framework; \
- exit 1; \
- else true; \
- fi
- @for i in $(prefix)/Resources/English.lproj $(prefix)/lib; do\
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $(DESTDIR)$$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- $(LN) -fsn include/python$(LDVERSION) $(DESTDIR)$(prefix)/Headers
- sed 's/%VERSION%/'"`$(RUNSHARED) ./$(BUILDPYTHON) -c 'import platform; print(platform.python_version())'`"'/g' < $(RESSRCDIR)/Info.plist > $(DESTDIR)$(prefix)/Resources/Info.plist
- $(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current
- $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/$(PYTHONFRAMEWORK)
- $(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers
- $(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources
- $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY)
-
-# This installs Mac/Lib into the framework
-# Install a number of symlinks to keep software that expects a normal unix
-# install (which includes python-config) happy.
-frameworkinstallmaclib:
- $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(LDVERSION).a"
- $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(LDVERSION).dylib"
- $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(VERSION).a"
- $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(VERSION).dylib"
- $(LN) -fs "../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/libpython$(LDVERSION).dylib"
- $(LN) -fs "../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/libpython$(VERSION).dylib"
-
-# This installs the IDE, the Launcher and other apps into /Applications
-frameworkinstallapps:
- cd Mac && $(MAKE) installapps DESTDIR="$(DESTDIR)"
-
-# Build the bootstrap executable that will spawn the interpreter inside
-# an app bundle within the framework. This allows the interpreter to
-# run OS X GUI APIs.
-frameworkpythonw:
- cd Mac && $(MAKE) pythonw
-
-# This installs the python* and other bin symlinks in $prefix/bin or in
-# a bin directory relative to the framework root
-frameworkinstallunixtools:
- cd Mac && $(MAKE) installunixtools DESTDIR="$(DESTDIR)"
-
-frameworkaltinstallunixtools:
- cd Mac && $(MAKE) altinstallunixtools DESTDIR="$(DESTDIR)"
-
-# This installs the Tools into the applications directory.
-# It is not part of a normal frameworkinstall
-frameworkinstallextras:
- cd Mac && $(MAKE) installextras DESTDIR="$(DESTDIR)"
-
-# This installs a few of the useful scripts in Tools/scripts
-scriptsinstall:
- SRCDIR=$(srcdir) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \
- --prefix=$(prefix) \
- --install-scripts=$(BINDIR) \
- --root=$(DESTDIR)/
-
-# Build the toplevel Makefile
-Makefile.pre: $(srcdir)/Makefile.pre.in config.status
- CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
- $(MAKE) -f Makefile.pre Makefile
-
-# Run the configure script.
-config.status: $(srcdir)/configure
- $(SHELL) $(srcdir)/configure $(CONFIG_ARGS)
-
-.PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre
-
-# Some make's put the object file in the current directory
-.c.o:
- $(CC) -c $(PY_CORE_CFLAGS) -o $@ $<
-
-# bpo-30104: dtoa.c uses union to cast double to unsigned long[2]. clang 4.0
-# with -O2 or higher and strict aliasing miscompiles the ratio() function
-# causing rounding issues. Compile dtoa.c using -fno-strict-aliasing on clang.
-# https://bugs.llvm.org//show_bug.cgi?id=31928
-Python/dtoa.o: Python/dtoa.c
- $(CC) -c $(PY_CORE_CFLAGS) $(CFLAGS_ALIASING) -o $@ $<
-
-# Run reindent on the library
-reindent:
- ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib
-
-# Rerun configure with the same options as it was run last time,
-# provided the config.status script exists
-recheck:
- $(SHELL) config.status --recheck
- $(SHELL) config.status
-
-# Regenerate configure and pyconfig.h.in
-.PHONY: autoconf
-autoconf:
- # Regenerate the configure script from configure.ac using autoconf
- (cd $(srcdir); autoconf -Wall)
- # Regenerate pyconfig.h.in from configure.ac using autoheader
- (cd $(srcdir); autoheader -Wall)
-
-# Create a tags file for vi
-tags::
- cd $(srcdir); \
- ctags -w Include/*.h; \
- for i in $(SRCDIRS); do ctags -w -a $$i/*.[ch]; \
- done; \
- LC_ALL=C sort -o tags tags
-
-# Create a tags file for GNU Emacs
-TAGS::
- cd $(srcdir); \
- etags Include/*.h; \
- for i in $(SRCDIRS); do etags -a $$i/*.[ch]; done
-
-# Sanitation targets -- clean leaves libraries, executables and tags
-# files, which clobber removes as well
-pycremoval:
- -find $(srcdir) -depth -name '__pycache__' -exec rm -rf {} ';'
- -find $(srcdir) -name '*.py[co]' -exec rm -f {} ';'
-
-rmtestturds:
- -rm -f *BAD *GOOD *SKIPPED
- -rm -rf OUT
- -rm -f *.TXT
- -rm -f *.txt
- -rm -f gb-18030-2000.xml
-
-docclean:
- -rm -rf Doc/build
- -rm -rf Doc/tools/sphinx Doc/tools/pygments Doc/tools/docutils
-
-clean: pycremoval
- find . -name '*.[oa]' -exec rm -f {} ';'
- find . -name '*.s[ol]' -exec rm -f {} ';'
- find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
- find build -name 'fficonfig.h' -exec rm -f {} ';' || true
- find build -name '*.py' -exec rm -f {} ';' || true
- find build -name '*.py[co]' -exec rm -f {} ';' || true
- -rm -f pybuilddir.txt
- -rm -f Lib/lib2to3/*Grammar*.pickle
- -rm -f Programs/_testembed Programs/_freeze_importlib
- -find build -type f -a ! -name '*.gc??' -exec rm -f {} ';'
- -rm -f Include/pydtrace_probes.h
-
-profile-removal:
- find . -name '*.gc??' -exec rm -f {} ';'
- find . -name '*.profclang?' -exec rm -f {} ';'
- find . -name '*.dyn' -exec rm -f {} ';'
- rm -f $(COVERAGE_INFO)
- rm -rf $(COVERAGE_REPORT)
-
-clobber: clean profile-removal
- -rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
- tags TAGS \
- config.cache config.log pyconfig.h Modules/config.c
- -rm -rf build platform
- -rm -rf $(PYTHONFRAMEWORKDIR)
- -rm -f python-config.py python-config
-
-# Make things extra clean, before making a distribution:
-# remove all generated files, even Makefile[.pre]
-# Keep configure and Python-ast.[ch], it's possible they can't be generated
-distclean: clobber
- for file in $(srcdir)/Lib/test/data/* ; do \
- if test "$$file" != "$(srcdir)/Lib/test/data/README"; then rm "$$file"; fi; \
- done
- -rm -f core Makefile Makefile.pre config.status \
- Modules/Setup Modules/Setup.local Modules/Setup.config \
- Modules/ld_so_aix Modules/python.exp Misc/python.pc \
- Misc/python-config.sh
- -rm -f python*-gdb.py
- # Issue #28258: set LC_ALL to avoid issues with Estonian locale.
- # Expansion is performed here by shell (spawned by make) itself before
- # arguments are passed to find. So LC_ALL=C must be set as a separate
- # command.
- LC_ALL=C; find $(srcdir)/[a-zA-Z]* '(' -name '*.fdc' -o -name '*~' \
- -o -name '[@,#]*' -o -name '*.old' \
- -o -name '*.orig' -o -name '*.rej' \
- -o -name '*.bak' ')' \
- -exec rm -f {} ';'
-
-# Check for smelly exported symbols (not starting with Py/_Py)
-smelly: all
- nm -p $(LIBRARY) | \
- sed -n "/ [TDB] /s/.* //p" | grep -v "^_*Py" | sort -u; \
-
-# Find files with funny names
-funny:
- find $(SUBDIRS) $(SUBDIRSTOO) \
- -type d \
- -o -name '*.[chs]' \
- -o -name '*.py' \
- -o -name '*.pyw' \
- -o -name '*.dat' \
- -o -name '*.el' \
- -o -name '*.fd' \
- -o -name '*.in' \
- -o -name '*.gif' \
- -o -name '*.txt' \
- -o -name '*.xml' \
- -o -name '*.xbm' \
- -o -name '*.xpm' \
- -o -name '*.uue' \
- -o -name '*.decTest' \
- -o -name '*.tmCommand' \
- -o -name '*.tmSnippet' \
- -o -name 'Setup' \
- -o -name 'Setup.*' \
- -o -name README \
- -o -name NEWS \
- -o -name HISTORY \
- -o -name Makefile \
- -o -name ChangeLog \
- -o -name .hgignore \
- -o -name .bzrignore \
- -o -name MANIFEST \
- -o -print
-
-# Perform some verification checks on any modified files.
-patchcheck: all
- $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py
-
-# Dependencies
-
-Python/thread.o: $(srcdir)/Python/thread_foobar.h $(srcdir)/Python/thread_nt.h $(srcdir)/Python/thread_pthread.h
-
-# Declare targets that aren't real files
-.PHONY: all build_all sharedmods oldsharedmods test quicktest
-.PHONY: install altinstall oldsharedinstall bininstall altbininstall
-.PHONY: maninstall libinstall inclinstall libainstall sharedinstall
-.PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure
-.PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
-.PHONY: frameworkaltinstallunixtools recheck clean clobber distclean
-.PHONY: smelly funny patchcheck touch altmaninstall commoninstall
-.PHONY: gdbhooks
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-# Local Variables:
-# mode: makefile
-# End:
-
-# Rules appended by makedepend
-
-Modules/_threadmodule.o: $(srcdir)/Modules/_threadmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_threadmodule.c -o Modules/_threadmodule.o
-Modules/_thread$(EXT_SUFFIX): Modules/_threadmodule.o; $(BLDSHARED) Modules/_threadmodule.o -o Modules/_thread$(EXT_SUFFIX)
-Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/posixmodule.c -o Modules/posixmodule.o
-Modules/posix$(EXT_SUFFIX): Modules/posixmodule.o; $(BLDSHARED) Modules/posixmodule.o -o Modules/posix$(EXT_SUFFIX)
-Modules/errnomodule.o: $(srcdir)/Modules/errnomodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/errnomodule.c -o Modules/errnomodule.o
-Modules/errno$(EXT_SUFFIX): Modules/errnomodule.o; $(BLDSHARED) Modules/errnomodule.o -o Modules/errno$(EXT_SUFFIX)
-Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/pwdmodule.c -o Modules/pwdmodule.o
-Modules/pwd$(EXT_SUFFIX): Modules/pwdmodule.o; $(BLDSHARED) Modules/pwdmodule.o -o Modules/pwd$(EXT_SUFFIX)
-Modules/_sre.o: $(srcdir)/Modules/_sre.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_sre.c -o Modules/_sre.o
-Modules/_sre$(EXT_SUFFIX): Modules/_sre.o; $(BLDSHARED) Modules/_sre.o -o Modules/_sre$(EXT_SUFFIX)
-Modules/_codecsmodule.o: $(srcdir)/Modules/_codecsmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_codecsmodule.c -o Modules/_codecsmodule.o
-Modules/_codecs$(EXT_SUFFIX): Modules/_codecsmodule.o; $(BLDSHARED) Modules/_codecsmodule.o -o Modules/_codecs$(EXT_SUFFIX)
-Modules/_weakref.o: $(srcdir)/Modules/_weakref.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_weakref.c -o Modules/_weakref.o
-Modules/_weakref$(EXT_SUFFIX): Modules/_weakref.o; $(BLDSHARED) Modules/_weakref.o -o Modules/_weakref$(EXT_SUFFIX)
-Modules/_functoolsmodule.o: $(srcdir)/Modules/_functoolsmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_functoolsmodule.c -o Modules/_functoolsmodule.o
-Modules/_functools$(EXT_SUFFIX): Modules/_functoolsmodule.o; $(BLDSHARED) Modules/_functoolsmodule.o -o Modules/_functools$(EXT_SUFFIX)
-Modules/_operator.o: $(srcdir)/Modules/_operator.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_operator.c -o Modules/_operator.o
-Modules/_operator$(EXT_SUFFIX): Modules/_operator.o; $(BLDSHARED) Modules/_operator.o -o Modules/_operator$(EXT_SUFFIX)
-Modules/_collectionsmodule.o: $(srcdir)/Modules/_collectionsmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_collectionsmodule.c -o Modules/_collectionsmodule.o
-Modules/_collections$(EXT_SUFFIX): Modules/_collectionsmodule.o; $(BLDSHARED) Modules/_collectionsmodule.o -o Modules/_collections$(EXT_SUFFIX)
-Modules/itertoolsmodule.o: $(srcdir)/Modules/itertoolsmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/itertoolsmodule.c -o Modules/itertoolsmodule.o
-Modules/itertools$(EXT_SUFFIX): Modules/itertoolsmodule.o; $(BLDSHARED) Modules/itertoolsmodule.o -o Modules/itertools$(EXT_SUFFIX)
-Modules/atexitmodule.o: $(srcdir)/Modules/atexitmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/atexitmodule.c -o Modules/atexitmodule.o
-Modules/atexit$(EXT_SUFFIX): Modules/atexitmodule.o; $(BLDSHARED) Modules/atexitmodule.o -o Modules/atexit$(EXT_SUFFIX)
-Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/signalmodule.c -o Modules/signalmodule.o
-Modules/_signal$(EXT_SUFFIX): Modules/signalmodule.o; $(BLDSHARED) Modules/signalmodule.o -o Modules/_signal$(EXT_SUFFIX)
-Modules/_stat.o: $(srcdir)/Modules/_stat.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_stat.c -o Modules/_stat.o
-Modules/_stat$(EXT_SUFFIX): Modules/_stat.o; $(BLDSHARED) Modules/_stat.o -o Modules/_stat$(EXT_SUFFIX)
-Modules/timemodule.o: $(srcdir)/Modules/timemodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/timemodule.c -o Modules/timemodule.o
-Modules/time$(EXT_SUFFIX): Modules/timemodule.o; $(BLDSHARED) Modules/timemodule.o -o Modules/time$(EXT_SUFFIX)
-Modules/_localemodule.o: $(srcdir)/Modules/_localemodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_localemodule.c -o Modules/_localemodule.o
-Modules/_locale$(EXT_SUFFIX): Modules/_localemodule.o; $(BLDSHARED) Modules/_localemodule.o -o Modules/_locale$(EXT_SUFFIX)
-Modules/_iomodule.o: $(srcdir)/Modules/_io/_iomodule.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/_iomodule.c -o Modules/_iomodule.o
-Modules/iobase.o: $(srcdir)/Modules/_io/iobase.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/iobase.c -o Modules/iobase.o
-Modules/fileio.o: $(srcdir)/Modules/_io/fileio.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/fileio.c -o Modules/fileio.o
-Modules/bytesio.o: $(srcdir)/Modules/_io/bytesio.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/bytesio.c -o Modules/bytesio.o
-Modules/bufferedio.o: $(srcdir)/Modules/_io/bufferedio.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/bufferedio.c -o Modules/bufferedio.o
-Modules/textio.o: $(srcdir)/Modules/_io/textio.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/textio.c -o Modules/textio.o
-Modules/stringio.o: $(srcdir)/Modules/_io/stringio.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/stringio.c -o Modules/stringio.o
-Modules/_io$(EXT_SUFFIX): Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o; $(BLDSHARED) Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o -o Modules/_io$(EXT_SUFFIX)
-Modules/zipimport.o: $(srcdir)/Modules/zipimport.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/zipimport.c -o Modules/zipimport.o
-Modules/zipimport$(EXT_SUFFIX): Modules/zipimport.o; $(BLDSHARED) Modules/zipimport.o -o Modules/zipimport$(EXT_SUFFIX)
-Modules/faulthandler.o: $(srcdir)/Modules/faulthandler.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/faulthandler.c -o Modules/faulthandler.o
-Modules/faulthandler$(EXT_SUFFIX): Modules/faulthandler.o; $(BLDSHARED) Modules/faulthandler.o -o Modules/faulthandler$(EXT_SUFFIX)
-Modules/_tracemalloc.o: $(srcdir)/Modules/_tracemalloc.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_tracemalloc.c -o Modules/_tracemalloc.o
-Modules/hashtable.o: $(srcdir)/Modules/hashtable.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/hashtable.c -o Modules/hashtable.o
-Modules/_tracemalloc$(EXT_SUFFIX): Modules/_tracemalloc.o Modules/hashtable.o; $(BLDSHARED) Modules/_tracemalloc.o Modules/hashtable.o -o Modules/_tracemalloc$(EXT_SUFFIX)
-Modules/symtablemodule.o: $(srcdir)/Modules/symtablemodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/symtablemodule.c -o Modules/symtablemodule.o
-Modules/_symtable$(EXT_SUFFIX): Modules/symtablemodule.o; $(BLDSHARED) Modules/symtablemodule.o -o Modules/_symtable$(EXT_SUFFIX)
-Modules/xxsubtype.o: $(srcdir)/Modules/xxsubtype.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/xxsubtype.c -o Modules/xxsubtype.o
-Modules/xxsubtype$(EXT_SUFFIX): Modules/xxsubtype.o; $(BLDSHARED) Modules/xxsubtype.o -o Modules/xxsubtype$(EXT_SUFFIX)
diff --git a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/Current b/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/Current
deleted file mode 120000
index 3faf9b8..0000000
--- a/app/dist/frontend.app/Contents/Frameworks/Python.framework/Versions/Current
+++ /dev/null
@@ -1 +0,0 @@
-3.6
\ No newline at end of file
diff --git a/app/dist/frontend.app/Contents/Frameworks/libcrypto.1.0.0.dylib b/app/dist/frontend.app/Contents/Frameworks/libcrypto.1.0.0.dylib
deleted file mode 100755
index 0edb4a7..0000000
Binary files a/app/dist/frontend.app/Contents/Frameworks/libcrypto.1.0.0.dylib and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Frameworks/libssl.1.0.0.dylib b/app/dist/frontend.app/Contents/Frameworks/libssl.1.0.0.dylib
deleted file mode 100755
index fb5cbdb..0000000
Binary files a/app/dist/frontend.app/Contents/Frameworks/libssl.1.0.0.dylib and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Info.plist b/app/dist/frontend.app/Contents/Info.plist
deleted file mode 100644
index 0f18574..0000000
--- a/app/dist/frontend.app/Contents/Info.plist
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- English
- CFBundleDisplayName
- frontend
- CFBundleDocumentTypes
-
-
- CFBundleTypeOSTypes
-
- ****
- fold
- disk
-
- CFBundleTypeRole
- Viewer
-
-
- CFBundleExecutable
- frontend
- CFBundleIconFile
- frontend
- CFBundleIdentifier
- org.pythonmac.unspecified.frontend
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- frontend
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 0.0.0
- CFBundleSignature
- ????
- CFBundleVersion
- 0.0.0
- LSHasLocalizedDisplayName
-
- NSAppleScriptEnabled
-
- NSHumanReadableCopyright
- Copyright not specified
- NSMainNibFile
- MainMenu
- NSPrincipalClass
- NSApplication
- PyMainFileNames
-
- __boot__
-
- PyOptions
-
- alias
-
- argv_emulation
-
- emulate_shell_environment
-
- no_chdir
-
- prefer_ppc
-
- site_packages
-
- use_faulthandler
-
- use_pythonpath
-
- verbose
-
-
- PyResourcePackages
-
- PyRuntimeLocations
-
- @executable_path/../Frameworks/Python.framework/Versions/3.6/Python
-
- PythonInfoDict
-
- PythonExecutable
- /Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python
- PythonLongVersion
- 3.6.3 (v3.6.3:2c5fed86e0, Oct 3 2017, 00:32:08)
-[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
- PythonShortVersion
- 3.6
- py2app
-
- alias
-
- template
- app
- version
- 0.10
-
-
-
-
diff --git a/app/dist/frontend.app/Contents/MacOS/frontend b/app/dist/frontend.app/Contents/MacOS/frontend
deleted file mode 100755
index 0ea1e58..0000000
Binary files a/app/dist/frontend.app/Contents/MacOS/frontend and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/MacOS/python b/app/dist/frontend.app/Contents/MacOS/python
deleted file mode 100755
index b25d3c6..0000000
Binary files a/app/dist/frontend.app/Contents/MacOS/python and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/PkgInfo b/app/dist/frontend.app/Contents/PkgInfo
deleted file mode 100644
index bd04210..0000000
--- a/app/dist/frontend.app/Contents/PkgInfo
+++ /dev/null
@@ -1 +0,0 @@
-APPL????
\ No newline at end of file
diff --git a/app/dist/frontend.app/Contents/Resources/__boot__.py b/app/dist/frontend.app/Contents/Resources/__boot__.py
deleted file mode 100644
index df97b27..0000000
--- a/app/dist/frontend.app/Contents/Resources/__boot__.py
+++ /dev/null
@@ -1,351 +0,0 @@
-def _reset_sys_path():
- # Clear generic sys.path[0]
- import sys, os
- resources = os.environ['RESOURCEPATH']
- while sys.path[0] == resources:
- del sys.path[0]
-_reset_sys_path()
-
-
-"""
-sys.argv emulation
-
-This module starts a basic event loop to collect file- and url-open AppleEvents. Those get
-converted to strings and stuffed into sys.argv. When that is done we continue starting
-the application.
-
-This is a workaround to convert scripts that expect filenames on the command-line to work
-in a GUI environment. GUI applications should not use this feature.
-
-NOTE: This module uses ctypes and not the Carbon modules in the stdlib because the latter
-don't work in 64-bit mode and are also not available with python 3.x.
-"""
-
-import sys
-import os
-import time
-
-import ctypes
-import struct
-
-class AEDesc (ctypes.Structure):
- _fields_ = [
- ('descKey', ctypes.c_int),
- ('descContent', ctypes.c_void_p),
- ]
-
-class EventTypeSpec (ctypes.Structure):
- _fields_ = [
- ('eventClass', ctypes.c_int),
- ('eventKind', ctypes.c_uint),
- ]
-
-def _ctypes_setup():
- carbon = ctypes.CDLL('/System/Library/Carbon.framework/Carbon')
-
- timer_func = ctypes.CFUNCTYPE(
- None, ctypes.c_void_p, ctypes.c_long)
-
- ae_callback = ctypes.CFUNCTYPE(ctypes.c_int, ctypes.c_void_p,
- ctypes.c_void_p, ctypes.c_void_p)
- carbon.AEInstallEventHandler.argtypes = [
- ctypes.c_int, ctypes.c_int, ae_callback,
- ctypes.c_void_p, ctypes.c_char ]
- carbon.AERemoveEventHandler.argtypes = [
- ctypes.c_int, ctypes.c_int, ae_callback,
- ctypes.c_char ]
-
- carbon.AEProcessEvent.restype = ctypes.c_int
- carbon.AEProcessEvent.argtypes = [ctypes.c_void_p]
-
-
- carbon.ReceiveNextEvent.restype = ctypes.c_int
- carbon.ReceiveNextEvent.argtypes = [
- ctypes.c_long, ctypes.POINTER(EventTypeSpec),
- ctypes.c_double, ctypes.c_char,
- ctypes.POINTER(ctypes.c_void_p)
- ]
-
-
- carbon.AEGetParamDesc.restype = ctypes.c_int
- carbon.AEGetParamDesc.argtypes = [
- ctypes.c_void_p, ctypes.c_int, ctypes.c_int,
- ctypes.POINTER(AEDesc)]
-
- carbon.AECountItems.restype = ctypes.c_int
- carbon.AECountItems.argtypes = [ ctypes.POINTER(AEDesc),
- ctypes.POINTER(ctypes.c_long) ]
-
- carbon.AEGetNthDesc.restype = ctypes.c_int
- carbon.AEGetNthDesc.argtypes = [
- ctypes.c_void_p, ctypes.c_long, ctypes.c_int,
- ctypes.c_void_p, ctypes.c_void_p ]
-
- carbon.AEGetDescDataSize.restype = ctypes.c_int
- carbon.AEGetDescDataSize.argtypes = [ ctypes.POINTER(AEDesc) ]
-
- carbon.AEGetDescData.restype = ctypes.c_int
- carbon.AEGetDescData.argtypes = [
- ctypes.POINTER(AEDesc),
- ctypes.c_void_p,
- ctypes.c_int,
- ]
-
-
- carbon.FSRefMakePath.restype = ctypes.c_int
- carbon.FSRefMakePath.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_uint]
-
- return carbon
-
-def _run_argvemulator(timeout = 60):
-
- # Configure ctypes
- carbon = _ctypes_setup()
-
- # Is the emulator running?
- running = [True]
-
- timeout = [timeout]
-
- # Configure AppleEvent handlers
- ae_callback = carbon.AEInstallEventHandler.argtypes[2]
-
- kAEInternetSuite, = struct.unpack('>i', b'GURL')
- kAEISGetURL, = struct.unpack('>i', b'GURL')
- kCoreEventClass, = struct.unpack('>i', b'aevt')
- kAEOpenApplication, = struct.unpack('>i', b'oapp')
- kAEOpenDocuments, = struct.unpack('>i', b'odoc')
- keyDirectObject, = struct.unpack('>i', b'----')
- typeAEList, = struct.unpack('>i', b'list')
- typeChar, = struct.unpack('>i', b'TEXT')
- typeFSRef, = struct.unpack('>i', b'fsrf')
- FALSE = b'\0'
- TRUE = b'\1'
- eventLoopTimedOutErr = -9875
-
- kEventClassAppleEvent, = struct.unpack('>i', b'eppc')
- kEventAppleEvent = 1
-
-
- @ae_callback
- def open_app_handler(message, reply, refcon):
- # Got a kAEOpenApplication event, which means we can
- # start up. On some OSX versions this event is even
- # sent when an kAEOpenDocuments or kAEOpenURLs event
- # is sent later on.
- #
- # Therefore don't set running to false, but reduce the
- # timeout to at most two seconds beyond the current time.
- timeout[0] = min(timeout[0], time.time() - start + 2)
- #running[0] = False
- return 0
-
- carbon.AEInstallEventHandler(kCoreEventClass, kAEOpenApplication,
- open_app_handler, 0, FALSE)
-
- @ae_callback
- def open_file_handler(message, reply, refcon):
- listdesc = AEDesc()
- sts = carbon.AEGetParamDesc(message, keyDirectObject, typeAEList,
- ctypes.byref(listdesc))
- if sts != 0:
- print("argvemulator warning: cannot unpack open document event")
- running[0] = False
- return
-
- item_count = ctypes.c_long()
- sts = carbon.AECountItems(ctypes.byref(listdesc), ctypes.byref(item_count))
- if sts != 0:
- print("argvemulator warning: cannot unpack open document event")
- running[0] = False
- return
-
- desc = AEDesc()
- for i in range(item_count.value):
- sts = carbon.AEGetNthDesc(ctypes.byref(listdesc), i+1, typeFSRef, 0, ctypes.byref(desc))
- if sts != 0:
- print("argvemulator warning: cannot unpack open document event")
- running[0] = False
- return
-
- sz = carbon.AEGetDescDataSize(ctypes.byref(desc))
- buf = ctypes.create_string_buffer(sz)
- sts = carbon.AEGetDescData(ctypes.byref(desc), buf, sz)
- if sts != 0:
- print("argvemulator warning: cannot extract open document event")
- continue
-
- fsref = buf
-
- buf = ctypes.create_string_buffer(1024)
- sts = carbon.FSRefMakePath(ctypes.byref(fsref), buf, 1023)
- if sts != 0:
- print("argvemulator warning: cannot extract open document event")
- continue
-
- if sys.version_info[0] > 2:
- sys.argv.append(buf.value.decode('utf-8'))
- else:
- sys.argv.append(buf.value)
-
- running[0] = False
- return 0
-
- carbon.AEInstallEventHandler(kCoreEventClass, kAEOpenDocuments,
- open_file_handler, 0, FALSE)
-
- @ae_callback
- def open_url_handler(message, reply, refcon):
- listdesc = AEDesc()
- ok = carbon.AEGetParamDesc(message, keyDirectObject, typeAEList,
- ctypes.byref(listdesc))
- if ok != 0:
- print("argvemulator warning: cannot unpack open document event")
- running[0] = False
- return
-
- item_count = ctypes.c_long()
- sts = carbon.AECountItems(ctypes.byref(listdesc), ctypes.byref(item_count))
- if sts != 0:
- print("argvemulator warning: cannot unpack open url event")
- running[0] = False
- return
-
- desc = AEDesc()
- for i in range(item_count.value):
- sts = carbon.AEGetNthDesc(ctypes.byref(listdesc), i+1, typeChar, 0, ctypes.byref(desc))
- if sts != 0:
- print("argvemulator warning: cannot unpack open URL event")
- running[0] = False
- return
-
- sz = carbon.AEGetDescDataSize(ctypes.byref(desc))
- buf = ctypes.create_string_buffer(sz)
- sts = carbon.AEGetDescData(ctypes.byref(desc), buf, sz)
- if sts != 0:
- print("argvemulator warning: cannot extract open URL event")
-
- else:
- if sys.version_info[0] > 2:
- sys.argv.append(buf.value.decode('utf-8'))
- else:
- sys.argv.append(buf.value)
-
- running[0] = False
- return 0
-
- carbon.AEInstallEventHandler(kAEInternetSuite, kAEISGetURL,
- open_url_handler, 0, FALSE)
-
- # Remove the funny -psn_xxx_xxx argument
- if len(sys.argv) > 1 and sys.argv[1].startswith('-psn_'):
- del sys.argv[1]
-
- start = time.time()
- now = time.time()
- eventType = EventTypeSpec()
- eventType.eventClass = kEventClassAppleEvent
- eventType.eventKind = kEventAppleEvent
-
- while running[0] and now - start < timeout[0]:
- event = ctypes.c_void_p()
-
- sts = carbon.ReceiveNextEvent(1, ctypes.byref(eventType),
- start + timeout[0] - now, TRUE, ctypes.byref(event))
-
- if sts == eventLoopTimedOutErr:
- break
-
- elif sts != 0:
- print("argvemulator warning: fetching events failed")
- break
-
- sts = carbon.AEProcessEvent(event)
- if sts != 0:
- print("argvemulator warning: processing events failed")
- break
-
-
- carbon.AERemoveEventHandler(kCoreEventClass, kAEOpenApplication,
- open_app_handler, FALSE)
- carbon.AERemoveEventHandler(kCoreEventClass, kAEOpenDocuments,
- open_file_handler, FALSE)
- carbon.AERemoveEventHandler(kAEInternetSuite, kAEISGetURL,
- open_url_handler, FALSE)
-
-def _argv_emulation():
- import sys, os
- # only use if started by LaunchServices
- if os.environ.get('_PY2APP_LAUNCHED_'):
- _run_argvemulator()
-_argv_emulation()
-
-
-def _chdir_resource():
- import os
- os.chdir(os.environ['RESOURCEPATH'])
-_chdir_resource()
-
-
-def _disable_linecache():
- import linecache
- def fake_getline(*args, **kwargs):
- return ''
- linecache.orig_getline = linecache.getline
- linecache.getline = fake_getline
-_disable_linecache()
-
-
-import re, sys
-cookie_re = re.compile(b"coding[:=]\s*([-\w.]+)")
-if sys.version_info[0] == 2:
- default_encoding = 'ascii'
-else:
- default_encoding = 'utf-8'
-
-def guess_encoding(fp):
- for i in range(2):
- ln = fp.readline()
-
- m = cookie_re.search(ln)
- if m is not None:
- return m.group(1).decode('ascii')
-
- return default_encoding
-
-def _run():
- global __file__
- import os, site
- sys.frozen = 'macosx_app'
- base = os.environ['RESOURCEPATH']
-
- argv0 = os.path.basename(os.environ['ARGVZERO'])
- script = SCRIPT_MAP.get(argv0, DEFAULT_SCRIPT)
-
- path = os.path.join(base, script)
- sys.argv[0] = __file__ = path
- if sys.version_info[0] == 2:
- with open(path, 'rU') as fp:
- source = fp.read() + "\n"
- else:
- with open(path, 'rb') as fp:
- encoding = guess_encoding(fp)
-
- with open(path, 'r', encoding=encoding) as fp:
- source = fp.read() + '\n'
- exec(compile(source, path, 'exec'), globals(), globals())
-
-
-def _setup_ctypes():
- from ctypes.macholib import dyld
- import os
- frameworks = os.path.join(os.environ['RESOURCEPATH'], '..', 'Frameworks')
- dyld.DEFAULT_FRAMEWORK_FALLBACK.insert(0, frameworks)
- dyld.DEFAULT_LIBRARY_FALLBACK.insert(0, frameworks)
-
-_setup_ctypes()
-
-
-DEFAULT_SCRIPT='frontend.py'
-SCRIPT_MAP={}
-_run()
diff --git a/app/dist/frontend.app/Contents/Resources/__error__.sh b/app/dist/frontend.app/Contents/Resources/__error__.sh
deleted file mode 100755
index f1122a6..0000000
--- a/app/dist/frontend.app/Contents/Resources/__error__.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-#
-# This is the default apptemplate error script
-#
-if ( test -n "$2" ) ; then
- echo "$1 Error"
- echo "An unexpected error has occurred during execution of the main script"
- echo ""
- echo "$2: $3"
- echo ""
- echo "See the Console for a detailed traceback."
-else
- echo "$1 Error"
-
- # Usage: ERRORURL , this is used by the
- # bundle runner to put up a dialog.
- #echo "ERRORURL: http://www.python.org/ Visit the Python Website
-# echo "ERRORURL: http://homepages.cwi.nl/~jack/macpython/index.html Visit the MacPython Website"
-fi
diff --git a/app/dist/frontend.app/Contents/Resources/__pycache__/site.cpython-36.pyc b/app/dist/frontend.app/Contents/Resources/__pycache__/site.cpython-36.pyc
deleted file mode 100644
index c418eb4..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/__pycache__/site.cpython-36.pyc and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/books.db b/app/dist/frontend.app/Contents/Resources/books.db
deleted file mode 100644
index 0e9a58b..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/books.db and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/frontend.py b/app/dist/frontend.app/Contents/Resources/frontend.py
deleted file mode 100644
index 03fa457..0000000
--- a/app/dist/frontend.app/Contents/Resources/frontend.py
+++ /dev/null
@@ -1,105 +0,0 @@
-from tkinter import *
-import backend
-
-def get_selected_row(event): #the "event" parameter is needed b/c we've binded this function to the listbox
- try:
- index = list1.curselection()[0]
- global selected_tuple
- selected_tuple = list1.get(index)
- e1.delete(0,END)
- e1.insert(END,selected_tuple[1])
- e2.delete(0, END)
- e2.insert(END,selected_tuple[2])
- e3.delete(0, END)
- e3.insert(END,selected_tuple[3])
- e4.delete(0, END)
- e4.insert(END,selected_tuple[4])
- except IndexError:
- pass #in the case where the listbox is empty, the code will not execute
-
-def view_command():
- list1.delete(0, END) # make sure we've cleared all entries in the listbox every time we press the View all button
- for row in backend.view():
- list1.insert(END, row)
-
-def search_command():
- list1.delete(0, END)
- for row in backend.search(title_text.get(), author_text.get(), year_text.get(), ISBN_text.get()):
- list1.insert(END, row)
-
-def add_command():
- backend.insert(title_text.get(), author_text.get(), year_text.get(), ISBN_text.get())
- list1.delete(0, END)
- list1.insert(END, (title_text.get(), author_text.get(), year_text.get(), ISBN_text.get()))
-
-def delete_command():
- backend.delete(selected_tuple[0])
- view_command()
-
-def update_command():
- #be careful for the next line ---> we are updating using the texts in the entries, not the selected tuple
- backend.update(selected_tuple[0],title_text.get(), author_text.get(), year_text.get(), ISBN_text.get())
- view_command()
-
-#code for the GUI (front end)
-window = Tk()
-window.wm_title("The Book Store")
-l1 = Label(window, text = "Title")
-l1.grid(row = 0, column = 0)
-
-l2 = Label(window, text = "Author")
-l2.grid(row = 0, column = 2)
-
-l3 = Label(window, text = "Year")
-l3.grid(row = 1, column = 0)
-
-l4 = Label(window, text = "ISBN")
-l4.grid(row = 1, column = 2)
-
-title_text = StringVar()
-e1 = Entry(window, textvariable = title_text)
-e1.grid(row = 0, column = 1)
-
-author_text = StringVar()
-e2 = Entry(window, textvariable = author_text)
-e2.grid(row = 0, column = 3)
-
-year_text = StringVar()
-e3 = Entry(window, textvariable = year_text)
-e3.grid(row = 1, column = 1)
-
-ISBN_text = StringVar()
-e4 = Entry(window, textvariable = ISBN_text)
-e4.grid(row = 1, column = 3)
-
-
-list1 = Listbox(window, height = 6, width = 35)
-list1.grid(row = 2, column =0, rowspan = 6, columnspan = 2)
-
-list1.bind('<>',get_selected_row)
-
-
-#now we need to attach a scrollbar to the listbox, and the other direction,too
-sb1 = Scrollbar(window)
-sb1.grid(row = 2, column = 2, rowspan = 6)
-list1.config(yscrollcommand = sb1.set)
-sb1.config(command = list1.yview)
-
-b1 = Button(window, text = "View all", width = 12, command = view_command)
-b1.grid(row = 2, column = 3)
-
-b2 = Button(window, text = "Search entry", width = 12, command = search_command)
-b2.grid(row = 3, column = 3)
-
-b3 = Button(window, text = "Add entry", width = 12, command = add_command)
-b3.grid(row = 4, column = 3)
-
-b4 = Button(window, text = "Update selected", width = 12, command = update_command)
-b4.grid(row = 5, column = 3)
-
-b5 = Button(window, text = "Delete selected", width = 12, command = delete_command)
-b5.grid(row = 6, column = 3)
-
-b6 = Button(window, text = "Close", width = 12, command = window.destroy)
-b6.grid(row = 7, column = 3)
-window.mainloop()
\ No newline at end of file
diff --git a/app/dist/frontend.app/Contents/Resources/include/python3.6m/pyconfig.h b/app/dist/frontend.app/Contents/Resources/include/python3.6m/pyconfig.h
deleted file mode 100644
index 6b1d2e8..0000000
--- a/app/dist/frontend.app/Contents/Resources/include/python3.6m/pyconfig.h
+++ /dev/null
@@ -1,1525 +0,0 @@
-/* pyconfig.h. Generated from pyconfig.h.in by configure. */
-/* pyconfig.h.in. Generated from configure.ac by autoheader. */
-
-
-#ifndef Py_PYCONFIG_H
-#define Py_PYCONFIG_H
-
-
-/* Define if building universal (internal helper macro) */
-#define AC_APPLE_UNIVERSAL_BUILD 1
-
-/* Define for AIX if your compiler is a genuine IBM xlC/xlC_r and you want
- support for AIX C++ shared extension modules. */
-/* #undef AIX_GENUINE_CPLUSPLUS */
-
-/* The Android API level. */
-/* #undef ANDROID_API_LEVEL */
-
-/* Define if C doubles are 64-bit IEEE 754 binary format, stored in ARM
- mixed-endian order (byte order 45670123) */
-/* #undef DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 */
-
-/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the most
- significant byte first */
-/* #undef DOUBLE_IS_BIG_ENDIAN_IEEE754 */
-
-/* Define if C doubles are 64-bit IEEE 754 binary format, stored with the
- least significant byte first */
-#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1
-
-/* Define if --enable-ipv6 is specified */
-#define ENABLE_IPV6 1
-
-/* Define if flock needs to be linked with bsd library. */
-/* #undef FLOCK_NEEDS_LIBBSD */
-
-/* Define if getpgrp() must be called as getpgrp(0). */
-/* #undef GETPGRP_HAVE_ARG */
-
-/* Define if gettimeofday() does not have second (timezone) argument This is
- the case on Motorola V4 (R40V4.2) */
-/* #undef GETTIMEOFDAY_NO_TZ */
-
-/* Define to 1 if you have the `accept4' function. */
-/* #undef HAVE_ACCEPT4 */
-
-/* Define to 1 if you have the `acosh' function. */
-#define HAVE_ACOSH 1
-
-/* struct addrinfo (netdb.h) */
-#define HAVE_ADDRINFO 1
-
-/* Define to 1 if you have the `alarm' function. */
-#define HAVE_ALARM 1
-
-/* Define if aligned memory access is required */
-/* #undef HAVE_ALIGNED_REQUIRED */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_ALLOCA_H 1
-
-/* Define this if your time.h defines altzone. */
-/* #undef HAVE_ALTZONE */
-
-/* Define to 1 if you have the `asinh' function. */
-#define HAVE_ASINH 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_ASM_TYPES_H */
-
-/* Define to 1 if you have the `atanh' function. */
-#define HAVE_ATANH 1
-
-/* Define to 1 if you have the `bind_textdomain_codeset' function. */
-/* #undef HAVE_BIND_TEXTDOMAIN_CODESET */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_BLUETOOTH_H */
-
-/* Define if mbstowcs(NULL, "text", 0) does not return the number of wide
- chars that would be converted. */
-/* #undef HAVE_BROKEN_MBSTOWCS */
-
-/* Define if nice() returns success/failure instead of the new priority. */
-/* #undef HAVE_BROKEN_NICE */
-
-/* Define if the system reports an invalid PIPE_BUF value. */
-/* #undef HAVE_BROKEN_PIPE_BUF */
-
-/* Define if poll() sets errno on invalid file descriptors. */
-/* #undef HAVE_BROKEN_POLL */
-
-/* Define if the Posix semaphores do not work on your system */
-/* #undef HAVE_BROKEN_POSIX_SEMAPHORES */
-
-/* Define if pthread_sigmask() does not work on your system. */
-/* #undef HAVE_BROKEN_PTHREAD_SIGMASK */
-
-/* define to 1 if your sem_getvalue is broken. */
-#define HAVE_BROKEN_SEM_GETVALUE 1
-
-/* Define if `unsetenv` does not return an int. */
-/* #undef HAVE_BROKEN_UNSETENV */
-
-/* Has builtin atomics */
-/* #undef HAVE_BUILTIN_ATOMIC */
-
-/* Define to 1 if you have the 'chflags' function. */
-#define HAVE_CHFLAGS 1
-
-/* Define to 1 if you have the `chown' function. */
-#define HAVE_CHOWN 1
-
-/* Define if you have the 'chroot' function. */
-#define HAVE_CHROOT 1
-
-/* Define to 1 if you have the `clock' function. */
-#define HAVE_CLOCK 1
-
-/* Define to 1 if you have the `clock_getres' function. */
-/* #undef HAVE_CLOCK_GETRES */
-
-/* Define to 1 if you have the `clock_gettime' function. */
-/* #undef HAVE_CLOCK_GETTIME */
-
-/* Define to 1 if you have the `clock_settime' function. */
-/* #undef HAVE_CLOCK_SETTIME */
-
-/* Define if the C compiler supports computed gotos. */
-#define HAVE_COMPUTED_GOTOS 1
-
-/* Define to 1 if you have the `confstr' function. */
-#define HAVE_CONFSTR 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_CONIO_H */
-
-/* Define to 1 if you have the `copysign' function. */
-#define HAVE_COPYSIGN 1
-
-/* Define to 1 if you have the `ctermid' function. */
-#define HAVE_CTERMID 1
-
-/* Define if you have the 'ctermid_r' function. */
-#define HAVE_CTERMID_R 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_CURSES_H 1
-
-/* Define if you have the 'is_term_resized' function. */
-#define HAVE_CURSES_IS_TERM_RESIZED 1
-
-/* Define if you have the 'resizeterm' function. */
-#define HAVE_CURSES_RESIZETERM 1
-
-/* Define if you have the 'resize_term' function. */
-#define HAVE_CURSES_RESIZE_TERM 1
-
-/* Define to 1 if you have the declaration of `isfinite', and to 0 if you
- don't. */
-#define HAVE_DECL_ISFINITE 1
-
-/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
- */
-#define HAVE_DECL_ISINF 1
-
-/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
- */
-#define HAVE_DECL_ISNAN 1
-
-/* Define to 1 if you have the declaration of `RTLD_DEEPBIND', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_DEEPBIND 0
-
-/* Define to 1 if you have the declaration of `RTLD_GLOBAL', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_GLOBAL 1
-
-/* Define to 1 if you have the declaration of `RTLD_LAZY', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_LAZY 1
-
-/* Define to 1 if you have the declaration of `RTLD_LOCAL', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_LOCAL 1
-
-/* Define to 1 if you have the declaration of `RTLD_NODELETE', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_NODELETE 1
-
-/* Define to 1 if you have the declaration of `RTLD_NOLOAD', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_NOLOAD 1
-
-/* Define to 1 if you have the declaration of `RTLD_NOW', and to 0 if you
- don't. */
-#define HAVE_DECL_RTLD_NOW 1
-
-/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
- */
-/* #undef HAVE_DECL_TZNAME */
-
-/* Define to 1 if you have the device macros. */
-#define HAVE_DEVICE_MACROS 1
-
-/* Define to 1 if you have the /dev/ptc device file. */
-/* #undef HAVE_DEV_PTC */
-
-/* Define to 1 if you have the /dev/ptmx device file. */
-#define HAVE_DEV_PTMX 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_DIRECT_H */
-
-/* Define to 1 if the dirent structure has a d_type field */
-#define HAVE_DIRENT_D_TYPE 1
-
-/* Define to 1 if you have the header file, and it defines `DIR'.
- */
-#define HAVE_DIRENT_H 1
-
-/* Define if you have the 'dirfd' function or macro. */
-#define HAVE_DIRFD 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_DLFCN_H 1
-
-/* Define to 1 if you have the `dlopen' function. */
-#define HAVE_DLOPEN 1
-
-/* Define to 1 if you have the `dup2' function. */
-#define HAVE_DUP2 1
-
-/* Define to 1 if you have the `dup3' function. */
-/* #undef HAVE_DUP3 */
-
-/* Defined when any dynamic module loading is enabled. */
-#define HAVE_DYNAMIC_LOADING 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_ENDIAN_H */
-
-/* Define if you have the 'epoll' functions. */
-/* #undef HAVE_EPOLL */
-
-/* Define if you have the 'epoll_create1' function. */
-/* #undef HAVE_EPOLL_CREATE1 */
-
-/* Define to 1 if you have the `erf' function. */
-#define HAVE_ERF 1
-
-/* Define to 1 if you have the `erfc' function. */
-#define HAVE_ERFC 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_ERRNO_H 1
-
-/* Define to 1 if you have the `execv' function. */
-#define HAVE_EXECV 1
-
-/* Define to 1 if you have the `expm1' function. */
-#define HAVE_EXPM1 1
-
-/* Define to 1 if you have the `faccessat' function. */
-/* #undef HAVE_FACCESSAT */
-
-/* Define if you have the 'fchdir' function. */
-#define HAVE_FCHDIR 1
-
-/* Define to 1 if you have the `fchmod' function. */
-#define HAVE_FCHMOD 1
-
-/* Define to 1 if you have the `fchmodat' function. */
-/* #undef HAVE_FCHMODAT */
-
-/* Define to 1 if you have the `fchown' function. */
-#define HAVE_FCHOWN 1
-
-/* Define to 1 if you have the `fchownat' function. */
-/* #undef HAVE_FCHOWNAT */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define if you have the 'fdatasync' function. */
-/* #undef HAVE_FDATASYNC */
-
-/* Define to 1 if you have the `fdopendir' function. */
-/* #undef HAVE_FDOPENDIR */
-
-/* Define to 1 if you have the `fexecve' function. */
-/* #undef HAVE_FEXECVE */
-
-/* Define to 1 if you have the `finite' function. */
-#define HAVE_FINITE 1
-
-/* Define to 1 if you have the `flock' function. */
-#define HAVE_FLOCK 1
-
-/* Define to 1 if you have the `fork' function. */
-#define HAVE_FORK 1
-
-/* Define to 1 if you have the `forkpty' function. */
-#define HAVE_FORKPTY 1
-
-/* Define to 1 if you have the `fpathconf' function. */
-#define HAVE_FPATHCONF 1
-
-/* Define to 1 if you have the `fseek64' function. */
-/* #undef HAVE_FSEEK64 */
-
-/* Define to 1 if you have the `fseeko' function. */
-#define HAVE_FSEEKO 1
-
-/* Define to 1 if you have the `fstatat' function. */
-/* #undef HAVE_FSTATAT */
-
-/* Define to 1 if you have the `fstatvfs' function. */
-#define HAVE_FSTATVFS 1
-
-/* Define if you have the 'fsync' function. */
-#define HAVE_FSYNC 1
-
-/* Define to 1 if you have the `ftell64' function. */
-/* #undef HAVE_FTELL64 */
-
-/* Define to 1 if you have the `ftello' function. */
-#define HAVE_FTELLO 1
-
-/* Define to 1 if you have the `ftime' function. */
-#define HAVE_FTIME 1
-
-/* Define to 1 if you have the `ftruncate' function. */
-#define HAVE_FTRUNCATE 1
-
-/* Define to 1 if you have the `futimens' function. */
-/* #undef HAVE_FUTIMENS */
-
-/* Define to 1 if you have the `futimes' function. */
-#define HAVE_FUTIMES 1
-
-/* Define to 1 if you have the `futimesat' function. */
-/* #undef HAVE_FUTIMESAT */
-
-/* Define to 1 if you have the `gai_strerror' function. */
-#define HAVE_GAI_STRERROR 1
-
-/* Define to 1 if you have the `gamma' function. */
-#define HAVE_GAMMA 1
-
-/* Define if we can use gcc inline assembler to get and set mc68881 fpcr */
-/* #undef HAVE_GCC_ASM_FOR_MC68881 */
-
-/* Define if we can use x64 gcc inline assembler */
-/* #undef HAVE_GCC_ASM_FOR_X64 */
-
-/* Define if we can use gcc inline assembler to get and set x87 control word
- */
-#define HAVE_GCC_ASM_FOR_X87 1
-
-/* Define if your compiler provides __uint128_t */
-/* #undef HAVE_GCC_UINT128_T */
-
-/* Define if you have the getaddrinfo function. */
-#define HAVE_GETADDRINFO 1
-
-/* Define this if you have flockfile(), getc_unlocked(), and funlockfile() */
-#define HAVE_GETC_UNLOCKED 1
-
-/* Define to 1 if you have the `getentropy' function. */
-/* #undef HAVE_GETENTROPY */
-
-/* Define to 1 if you have the `getgrouplist' function. */
-#define HAVE_GETGROUPLIST 1
-
-/* Define to 1 if you have the `getgroups' function. */
-#define HAVE_GETGROUPS 1
-
-/* Define to 1 if you have the `gethostbyname' function. */
-#define HAVE_GETHOSTBYNAME 1
-
-/* Define this if you have some version of gethostbyname_r() */
-/* #undef HAVE_GETHOSTBYNAME_R */
-
-/* Define this if you have the 3-arg version of gethostbyname_r(). */
-/* #undef HAVE_GETHOSTBYNAME_R_3_ARG */
-
-/* Define this if you have the 5-arg version of gethostbyname_r(). */
-/* #undef HAVE_GETHOSTBYNAME_R_5_ARG */
-
-/* Define this if you have the 6-arg version of gethostbyname_r(). */
-/* #undef HAVE_GETHOSTBYNAME_R_6_ARG */
-
-/* Define to 1 if you have the `getitimer' function. */
-#define HAVE_GETITIMER 1
-
-/* Define to 1 if you have the `getloadavg' function. */
-#define HAVE_GETLOADAVG 1
-
-/* Define to 1 if you have the `getlogin' function. */
-#define HAVE_GETLOGIN 1
-
-/* Define to 1 if you have the `getnameinfo' function. */
-#define HAVE_GETNAMEINFO 1
-
-/* Define if you have the 'getpagesize' function. */
-#define HAVE_GETPAGESIZE 1
-
-/* Define to 1 if you have the `getpeername' function. */
-#define HAVE_GETPEERNAME 1
-
-/* Define to 1 if you have the `getpgid' function. */
-#define HAVE_GETPGID 1
-
-/* Define to 1 if you have the `getpgrp' function. */
-#define HAVE_GETPGRP 1
-
-/* Define to 1 if you have the `getpid' function. */
-#define HAVE_GETPID 1
-
-/* Define to 1 if you have the `getpriority' function. */
-#define HAVE_GETPRIORITY 1
-
-/* Define to 1 if you have the `getpwent' function. */
-#define HAVE_GETPWENT 1
-
-/* Define to 1 if the getrandom() function is available */
-/* #undef HAVE_GETRANDOM */
-
-/* Define to 1 if the Linux getrandom() syscall is available */
-/* #undef HAVE_GETRANDOM_SYSCALL */
-
-/* Define to 1 if you have the `getresgid' function. */
-/* #undef HAVE_GETRESGID */
-
-/* Define to 1 if you have the `getresuid' function. */
-/* #undef HAVE_GETRESUID */
-
-/* Define to 1 if you have the `getsid' function. */
-#define HAVE_GETSID 1
-
-/* Define to 1 if you have the `getspent' function. */
-/* #undef HAVE_GETSPENT */
-
-/* Define to 1 if you have the `getspnam' function. */
-/* #undef HAVE_GETSPNAM */
-
-/* Define to 1 if you have the `gettimeofday' function. */
-#define HAVE_GETTIMEOFDAY 1
-
-/* Define to 1 if you have the `getwd' function. */
-#define HAVE_GETWD 1
-
-/* Define if glibc has incorrect _FORTIFY_SOURCE wrappers for memmove and
- bcopy. */
-/* #undef HAVE_GLIBC_MEMMOVE_BUG */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_GRP_H 1
-
-/* Define if you have the 'hstrerror' function. */
-#define HAVE_HSTRERROR 1
-
-/* Define this if you have le64toh() */
-/* #undef HAVE_HTOLE64 */
-
-/* Define to 1 if you have the `hypot' function. */
-#define HAVE_HYPOT 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_IEEEFP_H */
-
-/* Define to 1 if you have the 'if_nameindex' function. */
-#define HAVE_IF_NAMEINDEX 1
-
-/* Define if you have the 'inet_aton' function. */
-#define HAVE_INET_ATON 1
-
-/* Define if you have the 'inet_pton' function. */
-#define HAVE_INET_PTON 1
-
-/* Define to 1 if you have the `initgroups' function. */
-#define HAVE_INITGROUPS 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_IO_H */
-
-/* Define if gcc has the ipa-pure-const bug. */
-/* #undef HAVE_IPA_PURE_CONST_BUG */
-
-/* Define to 1 if you have the `kill' function. */
-#define HAVE_KILL 1
-
-/* Define to 1 if you have the `killpg' function. */
-#define HAVE_KILLPG 1
-
-/* Define if you have the 'kqueue' functions. */
-#define HAVE_KQUEUE 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_LANGINFO_H 1
-
-/* Defined to enable large file support when an off_t is bigger than a long
- and long long is available and at least as big as an off_t. You may need to
- add some flags for configuration and compilation to enable this mode. (For
- Solaris and Linux, the necessary defines are already defined.) */
-/* #undef HAVE_LARGEFILE_SUPPORT */
-
-/* Define to 1 if you have the 'lchflags' function. */
-#define HAVE_LCHFLAGS 1
-
-/* Define to 1 if you have the `lchmod' function. */
-#define HAVE_LCHMOD 1
-
-/* Define to 1 if you have the `lchown' function. */
-#define HAVE_LCHOWN 1
-
-/* Define to 1 if you have the `lgamma' function. */
-#define HAVE_LGAMMA 1
-
-/* Define to 1 if you have the `dl' library (-ldl). */
-#define HAVE_LIBDL 1
-
-/* Define to 1 if you have the `dld' library (-ldld). */
-/* #undef HAVE_LIBDLD */
-
-/* Define to 1 if you have the `ieee' library (-lieee). */
-/* #undef HAVE_LIBIEEE */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LIBINTL_H */
-
-/* Define if you have the readline library (-lreadline). */
-#define HAVE_LIBREADLINE 1
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-/* #undef HAVE_LIBRESOLV */
-
-/* Define to 1 if you have the `sendfile' library (-lsendfile). */
-/* #undef HAVE_LIBSENDFILE */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LIBUTIL_H */
-
-/* Define if you have the 'link' function. */
-#define HAVE_LINK 1
-
-/* Define to 1 if you have the `linkat' function. */
-/* #undef HAVE_LINKAT */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_CAN_BCM_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_CAN_H */
-
-/* Define if compiling using Linux 3.6 or later. */
-/* #undef HAVE_LINUX_CAN_RAW_FD_FRAMES */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_CAN_RAW_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_NETLINK_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_RANDOM_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_LINUX_TIPC_H */
-
-/* Define to 1 if you have the 'lockf' function and the F_LOCK macro. */
-#define HAVE_LOCKF 1
-
-/* Define to 1 if you have the `log1p' function. */
-#define HAVE_LOG1P 1
-
-/* Define to 1 if you have the `log2' function. */
-#define HAVE_LOG2 1
-
-/* Define this if you have the type long double. */
-#define HAVE_LONG_DOUBLE 1
-
-/* Define to 1 if you have the `lstat' function. */
-#define HAVE_LSTAT 1
-
-/* Define to 1 if you have the `lutimes' function. */
-#define HAVE_LUTIMES 1
-
-/* Define this if you have the makedev macro. */
-#define HAVE_MAKEDEV 1
-
-/* Define to 1 if you have the `mbrtowc' function. */
-#define HAVE_MBRTOWC 1
-
-/* Define to 1 if you have the `memmove' function. */
-#define HAVE_MEMMOVE 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the `memrchr' function. */
-/* #undef HAVE_MEMRCHR */
-
-/* Define to 1 if you have the `mkdirat' function. */
-/* #undef HAVE_MKDIRAT */
-
-/* Define to 1 if you have the `mkfifo' function. */
-#define HAVE_MKFIFO 1
-
-/* Define to 1 if you have the `mkfifoat' function. */
-/* #undef HAVE_MKFIFOAT */
-
-/* Define to 1 if you have the `mknod' function. */
-#define HAVE_MKNOD 1
-
-/* Define to 1 if you have the `mknodat' function. */
-/* #undef HAVE_MKNODAT */
-
-/* Define to 1 if you have the `mktime' function. */
-#define HAVE_MKTIME 1
-
-/* Define to 1 if you have the `mmap' function. */
-#define HAVE_MMAP 1
-
-/* Define to 1 if you have the `mremap' function. */
-/* #undef HAVE_MREMAP */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_NCURSES_H 1
-
-/* Define to 1 if you have the header file, and it defines `DIR'. */
-/* #undef HAVE_NDIR_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_NETPACKET_PACKET_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_NET_IF_H 1
-
-/* Define to 1 if you have the `nice' function. */
-#define HAVE_NICE 1
-
-/* Define to 1 if you have the `openat' function. */
-/* #undef HAVE_OPENAT */
-
-/* Define to 1 if you have the `openpty' function. */
-#define HAVE_OPENPTY 1
-
-/* Define to 1 if you have the `pathconf' function. */
-#define HAVE_PATHCONF 1
-
-/* Define to 1 if you have the `pause' function. */
-#define HAVE_PAUSE 1
-
-/* Define to 1 if you have the `pipe2' function. */
-/* #undef HAVE_PIPE2 */
-
-/* Define to 1 if you have the `plock' function. */
-/* #undef HAVE_PLOCK */
-
-/* Define to 1 if you have the `poll' function. */
-#define HAVE_POLL 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_POLL_H 1
-
-/* Define to 1 if you have the `posix_fadvise' function. */
-/* #undef HAVE_POSIX_FADVISE */
-
-/* Define to 1 if you have the `posix_fallocate' function. */
-/* #undef HAVE_POSIX_FALLOCATE */
-
-/* Define to 1 if you have the `pread' function. */
-#define HAVE_PREAD 1
-
-/* Define if you have the 'prlimit' functions. */
-/* #undef HAVE_PRLIMIT */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_PROCESS_H */
-
-/* Define if your compiler supports function prototype */
-#define HAVE_PROTOTYPES 1
-
-/* Define to 1 if you have the `pthread_atfork' function. */
-#define HAVE_PTHREAD_ATFORK 1
-
-/* Defined for Solaris 2.6 bug in pthread header. */
-/* #undef HAVE_PTHREAD_DESTRUCTOR */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_PTHREAD_H 1
-
-/* Define to 1 if you have the `pthread_init' function. */
-/* #undef HAVE_PTHREAD_INIT */
-
-/* Define to 1 if you have the `pthread_kill' function. */
-#define HAVE_PTHREAD_KILL 1
-
-/* Define to 1 if you have the `pthread_sigmask' function. */
-#define HAVE_PTHREAD_SIGMASK 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_PTY_H */
-
-/* Define to 1 if you have the `putenv' function. */
-#define HAVE_PUTENV 1
-
-/* Define to 1 if you have the `pwrite' function. */
-#define HAVE_PWRITE 1
-
-/* Define to 1 if you have the `readlink' function. */
-#define HAVE_READLINK 1
-
-/* Define to 1 if you have the `readlinkat' function. */
-/* #undef HAVE_READLINKAT */
-
-/* Define to 1 if you have the `readv' function. */
-#define HAVE_READV 1
-
-/* Define to 1 if you have the `realpath' function. */
-#define HAVE_REALPATH 1
-
-/* Define to 1 if you have the `renameat' function. */
-/* #undef HAVE_RENAMEAT */
-
-/* Define if readline supports append_history */
-/* #undef HAVE_RL_APPEND_HISTORY */
-
-/* Define if you have readline 2.1 */
-#define HAVE_RL_CALLBACK 1
-
-/* Define if you can turn off readline's signal handling. */
-/* #undef HAVE_RL_CATCH_SIGNAL */
-
-/* Define if you have readline 2.2 */
-#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1
-
-/* Define if you have readline 4.0 */
-#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1
-
-/* Define if you have readline 4.2 */
-#define HAVE_RL_COMPLETION_MATCHES 1
-
-/* Define if you have rl_completion_suppress_append */
-/* #undef HAVE_RL_COMPLETION_SUPPRESS_APPEND */
-
-/* Define if you have readline 4.0 */
-#define HAVE_RL_PRE_INPUT_HOOK 1
-
-/* Define if you have readline 4.0 */
-/* #undef HAVE_RL_RESIZE_TERMINAL */
-
-/* Define to 1 if you have the `round' function. */
-#define HAVE_ROUND 1
-
-/* Define to 1 if you have the `sched_get_priority_max' function. */
-#define HAVE_SCHED_GET_PRIORITY_MAX 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SCHED_H 1
-
-/* Define to 1 if you have the `sched_rr_get_interval' function. */
-/* #undef HAVE_SCHED_RR_GET_INTERVAL */
-
-/* Define to 1 if you have the `sched_setaffinity' function. */
-/* #undef HAVE_SCHED_SETAFFINITY */
-
-/* Define to 1 if you have the `sched_setparam' function. */
-/* #undef HAVE_SCHED_SETPARAM */
-
-/* Define to 1 if you have the `sched_setscheduler' function. */
-/* #undef HAVE_SCHED_SETSCHEDULER */
-
-/* Define to 1 if you have the `select' function. */
-#define HAVE_SELECT 1
-
-/* Define to 1 if you have the `sem_getvalue' function. */
-#define HAVE_SEM_GETVALUE 1
-
-/* Define to 1 if you have the `sem_open' function. */
-#define HAVE_SEM_OPEN 1
-
-/* Define to 1 if you have the `sem_timedwait' function. */
-/* #undef HAVE_SEM_TIMEDWAIT */
-
-/* Define to 1 if you have the `sem_unlink' function. */
-#define HAVE_SEM_UNLINK 1
-
-/* Define to 1 if you have the `sendfile' function. */
-#define HAVE_SENDFILE 1
-
-/* Define to 1 if you have the `setegid' function. */
-#define HAVE_SETEGID 1
-
-/* Define to 1 if you have the `seteuid' function. */
-#define HAVE_SETEUID 1
-
-/* Define to 1 if you have the `setgid' function. */
-#define HAVE_SETGID 1
-
-/* Define if you have the 'setgroups' function. */
-#define HAVE_SETGROUPS 1
-
-/* Define to 1 if you have the `sethostname' function. */
-#define HAVE_SETHOSTNAME 1
-
-/* Define to 1 if you have the `setitimer' function. */
-#define HAVE_SETITIMER 1
-
-/* Define to 1 if you have the `setlocale' function. */
-#define HAVE_SETLOCALE 1
-
-/* Define to 1 if you have the `setpgid' function. */
-#define HAVE_SETPGID 1
-
-/* Define to 1 if you have the `setpgrp' function. */
-#define HAVE_SETPGRP 1
-
-/* Define to 1 if you have the `setpriority' function. */
-#define HAVE_SETPRIORITY 1
-
-/* Define to 1 if you have the `setregid' function. */
-#define HAVE_SETREGID 1
-
-/* Define to 1 if you have the `setresgid' function. */
-/* #undef HAVE_SETRESGID */
-
-/* Define to 1 if you have the `setresuid' function. */
-/* #undef HAVE_SETRESUID */
-
-/* Define to 1 if you have the `setreuid' function. */
-#define HAVE_SETREUID 1
-
-/* Define to 1 if you have the `setsid' function. */
-#define HAVE_SETSID 1
-
-/* Define to 1 if you have the `setuid' function. */
-#define HAVE_SETUID 1
-
-/* Define to 1 if you have the `setvbuf' function. */
-#define HAVE_SETVBUF 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SHADOW_H */
-
-/* Define to 1 if you have the `sigaction' function. */
-#define HAVE_SIGACTION 1
-
-/* Define to 1 if you have the `sigaltstack' function. */
-#define HAVE_SIGALTSTACK 1
-
-/* Define to 1 if you have the `siginterrupt' function. */
-#define HAVE_SIGINTERRUPT 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SIGNAL_H 1
-
-/* Define to 1 if you have the `sigpending' function. */
-#define HAVE_SIGPENDING 1
-
-/* Define to 1 if you have the `sigrelse' function. */
-#define HAVE_SIGRELSE 1
-
-/* Define to 1 if you have the `sigtimedwait' function. */
-/* #undef HAVE_SIGTIMEDWAIT */
-
-/* Define to 1 if you have the `sigwait' function. */
-#define HAVE_SIGWAIT 1
-
-/* Define to 1 if you have the `sigwaitinfo' function. */
-/* #undef HAVE_SIGWAITINFO */
-
-/* Define to 1 if you have the `snprintf' function. */
-#define HAVE_SNPRINTF 1
-
-/* struct sockaddr_alg (linux/if_alg.h) */
-/* #undef HAVE_SOCKADDR_ALG */
-
-/* Define if sockaddr has sa_len member */
-#define HAVE_SOCKADDR_SA_LEN 1
-
-/* struct sockaddr_storage (sys/socket.h) */
-#define HAVE_SOCKADDR_STORAGE 1
-
-/* Define if you have the 'socketpair' function. */
-#define HAVE_SOCKETPAIR 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SPAWN_H 1
-
-/* Define if your compiler provides ssize_t */
-#define HAVE_SSIZE_T 1
-
-/* Define to 1 if you have the `statvfs' function. */
-#define HAVE_STATVFS 1
-
-/* Define if you have struct stat.st_mtim.tv_nsec */
-/* #undef HAVE_STAT_TV_NSEC */
-
-/* Define if you have struct stat.st_mtimensec */
-#define HAVE_STAT_TV_NSEC2 1
-
-/* Define if your compiler supports variable length function prototypes (e.g.
- void fprintf(FILE *, char *, ...);) *and* */
-#define HAVE_STDARG_PROTOTYPES 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_STDLIB_H 1
-
-/* Has stdatomic.h, atomic_int and _Atomic void* types work */
-/* #undef HAVE_STD_ATOMIC */
-
-/* Define to 1 if you have the `strdup' function. */
-#define HAVE_STRDUP 1
-
-/* Define to 1 if you have the `strftime' function. */
-#define HAVE_STRFTIME 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the `strlcpy' function. */
-#define HAVE_STRLCPY 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_STROPTS_H */
-
-/* Define to 1 if `pw_gecos' is a member of `struct passwd'. */
-#define HAVE_STRUCT_PASSWD_PW_GECOS 1
-
-/* Define to 1 if `pw_passwd' is a member of `struct passwd'. */
-#define HAVE_STRUCT_PASSWD_PW_PASSWD 1
-
-/* Define to 1 if `st_birthtime' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1
-
-/* Define to 1 if `st_blksize' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
-
-/* Define to 1 if `st_blocks' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_BLOCKS 1
-
-/* Define to 1 if `st_flags' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_FLAGS 1
-
-/* Define to 1 if `st_gen' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_GEN 1
-
-/* Define to 1 if `st_rdev' is a member of `struct stat'. */
-#define HAVE_STRUCT_STAT_ST_RDEV 1
-
-/* Define to 1 if `tm_zone' is a member of `struct tm'. */
-#define HAVE_STRUCT_TM_TM_ZONE 1
-
-/* Define if you have the 'symlink' function. */
-#define HAVE_SYMLINK 1
-
-/* Define to 1 if you have the `symlinkat' function. */
-/* #undef HAVE_SYMLINKAT */
-
-/* Define to 1 if you have the `sync' function. */
-#define HAVE_SYNC 1
-
-/* Define to 1 if you have the `sysconf' function. */
-#define HAVE_SYSCONF 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYSEXITS_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_AUDIOIO_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_BSDTTY_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_DEVPOLL_H */
-
-/* Define to 1 if you have the header file, and it defines `DIR'.
- */
-/* #undef HAVE_SYS_DIR_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_ENDIAN_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_EPOLL_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_EVENT_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_FILE_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_IOCTL_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_KERN_CONTROL_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_LOADAVG_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_LOCK_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_MKDEV_H */
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_MODEM_H */
-
-/* Define to 1 if you have the header file, and it defines `DIR'.
- */
-/* #undef HAVE_SYS_NDIR_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_PARAM_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_POLL_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_RANDOM_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_RESOURCE_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_SELECT_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_SENDFILE_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_SOCKET_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_STATVFS_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_SYSCALL_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_SYSMACROS_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_SYS_DOMAIN_H 1
-
-/* Define to 1 if you have the header file. */
-/* #undef HAVE_SYS_TERMIO_H */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_TIMES_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_UIO_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_UN_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_UTSNAME_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_WAIT_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_SYS_XATTR_H 1
-
-/* Define to 1 if you have the `tcgetpgrp' function. */
-#define HAVE_TCGETPGRP 1
-
-/* Define to 1 if you have the `tcsetpgrp' function. */
-#define HAVE_TCSETPGRP 1
-
-/* Define to 1 if you have the `tempnam' function. */
-#define HAVE_TEMPNAM 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_TERMIOS_H 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_TERM_H 1
-
-/* Define to 1 if you have the `tgamma' function. */
-#define HAVE_TGAMMA 1
-
-/* Define to 1 if you have the `timegm' function. */
-#define HAVE_TIMEGM 1
-
-/* Define to 1 if you have the `times' function. */
-#define HAVE_TIMES 1
-
-/* Define to 1 if you have the `tmpfile' function. */
-#define HAVE_TMPFILE 1
-
-/* Define to 1 if you have the `tmpnam' function. */
-#define HAVE_TMPNAM 1
-
-/* Define to 1 if you have the `tmpnam_r' function. */
-/* #undef HAVE_TMPNAM_R */
-
-/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
- `HAVE_STRUCT_TM_TM_ZONE' instead. */
-#define HAVE_TM_ZONE 1
-
-/* Define to 1 if you have the `truncate' function. */
-#define HAVE_TRUNCATE 1
-
-/* Define to 1 if you don't have `tm_zone' but do have the external array
- `tzname'. */
-/* #undef HAVE_TZNAME */
-
-/* Define this if you have tcl and TCL_UTF_MAX==6 */
-/* #undef HAVE_UCS4_TCL */
-
-/* Define to 1 if you have the `uname' function. */
-#define HAVE_UNAME 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the `unlinkat' function. */
-/* #undef HAVE_UNLINKAT */
-
-/* Define to 1 if you have the `unsetenv' function. */
-#define HAVE_UNSETENV 1
-
-/* Define if you have a useable wchar_t type defined in wchar.h; useable means
- wchar_t must be an unsigned type with at least 16 bits. (see
- Include/unicodeobject.h). */
-/* #undef HAVE_USABLE_WCHAR_T */
-
-/* Define to 1 if you have the header file. */
-#define HAVE_UTIL_H 1
-
-/* Define to 1 if you have the `utimensat' function. */
-/* #undef HAVE_UTIMENSAT */
-
-/* Define to 1 if you have the `utimes' function. */
-#define HAVE_UTIMES 1
-
-/* Define to 1 if you have the header file. */
-#define HAVE_UTIME_H 1
-
-/* Define to 1 if you have the `wait3' function. */
-#define HAVE_WAIT3 1
-
-/* Define to 1 if you have the `wait4' function. */
-#define HAVE_WAIT4 1
-
-/* Define to 1 if you have the `waitid' function. */
-#define HAVE_WAITID 1
-
-/* Define to 1 if you have the `waitpid' function. */
-#define HAVE_WAITPID 1
-
-/* Define if the compiler provides a wchar.h header file. */
-#define HAVE_WCHAR_H 1
-
-/* Define to 1 if you have the `wcscoll' function. */
-#define HAVE_WCSCOLL 1
-
-/* Define to 1 if you have the `wcsftime' function. */
-#define HAVE_WCSFTIME 1
-
-/* Define to 1 if you have the `wcsxfrm' function. */
-#define HAVE_WCSXFRM 1
-
-/* Define to 1 if you have the `wmemcmp' function. */
-#define HAVE_WMEMCMP 1
-
-/* Define if tzset() actually switches the local timezone in a meaningful way.
- */
-#define HAVE_WORKING_TZSET 1
-
-/* Define to 1 if you have the `writev' function. */
-#define HAVE_WRITEV 1
-
-/* Define if the zlib library has inflateCopy */
-#define HAVE_ZLIB_COPY 1
-
-/* Define to 1 if you have the `_getpty' function. */
-/* #undef HAVE__GETPTY */
-
-/* Define if log1p(-0.) is 0. rather than -0. */
-/* #undef LOG1P_DROPS_ZERO_SIGN */
-
-/* Define to 1 if `major', `minor', and `makedev' are declared in .
- */
-/* #undef MAJOR_IN_MKDEV */
-
-/* Define to 1 if `major', `minor', and `makedev' are declared in
- . */
-/* #undef MAJOR_IN_SYSMACROS */
-
-/* Define if mvwdelch in curses.h is an expression. */
-#define MVWDELCH_IS_EXPRESSION 1
-
-/* Define to the address where bug reports for this package should be sent. */
-/* #undef PACKAGE_BUGREPORT */
-
-/* Define to the full name of this package. */
-/* #undef PACKAGE_NAME */
-
-/* Define to the full name and version of this package. */
-/* #undef PACKAGE_STRING */
-
-/* Define to the one symbol short name of this package. */
-/* #undef PACKAGE_TARNAME */
-
-/* Define to the home page for this package. */
-/* #undef PACKAGE_URL */
-
-/* Define to the version of this package. */
-/* #undef PACKAGE_VERSION */
-
-/* Define if POSIX semaphores aren't enabled on your system */
-/* #undef POSIX_SEMAPHORES_NOT_ENABLED */
-
-/* Defined if PTHREAD_SCOPE_SYSTEM supported. */
-#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1
-
-/* Define as the preferred size in bits of long digits */
-/* #undef PYLONG_BITS_IN_DIGIT */
-
-/* Define to printf format modifier for Py_ssize_t */
-#define PY_FORMAT_SIZE_T "z"
-
-/* Define if you want to build an interpreter with many run-time checks. */
-/* #undef Py_DEBUG */
-
-/* Defined if Python is built as a shared library. */
-/* #undef Py_ENABLE_SHARED */
-
-/* Define hash algorithm for str, bytes and memoryview. SipHash24: 1, FNV: 2,
- externally defined: 0 */
-/* #undef Py_HASH_ALGORITHM */
-
-/* assume C89 semantics that RETSIGTYPE is always void */
-#define RETSIGTYPE void
-
-/* Define if setpgrp() must be called as setpgrp(0, 0). */
-/* #undef SETPGRP_HAVE_ARG */
-
-/* Define if i>>j for signed int i does not extend the sign bit when i < 0 */
-/* #undef SIGNED_RIGHT_SHIFT_ZERO_FILLS */
-
-/* The size of `double', as computed by sizeof. */
-#define SIZEOF_DOUBLE 8
-
-/* The size of `float', as computed by sizeof. */
-#define SIZEOF_FLOAT 4
-
-/* The size of `fpos_t', as computed by sizeof. */
-#define SIZEOF_FPOS_T 8
-
-/* The size of `int', as computed by sizeof. */
-#define SIZEOF_INT 4
-
-/* The size of `long', as computed by sizeof. */
-#define SIZEOF_LONG 8
-
-/* The size of `long double', as computed by sizeof. */
-#define SIZEOF_LONG_DOUBLE 16
-
-/* The size of `long long', as computed by sizeof. */
-#define SIZEOF_LONG_LONG 8
-
-/* The size of `off_t', as computed by sizeof. */
-#define SIZEOF_OFF_T 8
-
-/* The size of `pid_t', as computed by sizeof. */
-#define SIZEOF_PID_T 4
-
-/* The size of `pthread_t', as computed by sizeof. */
-#define SIZEOF_PTHREAD_T 8
-
-/* The size of `short', as computed by sizeof. */
-#define SIZEOF_SHORT 2
-
-/* The size of `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 8
-
-/* The size of `time_t', as computed by sizeof. */
-#define SIZEOF_TIME_T 8
-
-/* The size of `uintptr_t', as computed by sizeof. */
-#define SIZEOF_UINTPTR_T 8
-
-/* The size of `void *', as computed by sizeof. */
-#define SIZEOF_VOID_P 8
-
-/* The size of `wchar_t', as computed by sizeof. */
-#define SIZEOF_WCHAR_T 4
-
-/* The size of `_Bool', as computed by sizeof. */
-#define SIZEOF__BOOL 1
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if you can safely include both and
- (which you can't on SCO ODT 3.0). */
-#define SYS_SELECT_WITH_SYS_TIME 1
-
-/* Define if tanh(-0.) is -0., or if platform doesn't have signed zeros */
-#define TANH_PRESERVES_ZERO_SIGN 1
-
-/* Library needed by timemodule.c: librt may be needed for clock_gettime() */
-/* #undef TIMEMODULE_LIB */
-
-/* Define to 1 if you can safely include both and . */
-#define TIME_WITH_SYS_TIME 1
-
-/* Define to 1 if your declares `struct tm'. */
-/* #undef TM_IN_SYS_TIME */
-
-/* Define if you want to use computed gotos in ceval.c. */
-#define USE_COMPUTED_GOTOS 1
-
-/* Define to use the C99 inline keyword. */
-#define USE_INLINE 1
-
-/* Enable extensions on AIX 3, Interix. */
-#ifndef _ALL_SOURCE
-# define _ALL_SOURCE 1
-#endif
-/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-#endif
-/* Enable threading extensions on Solaris. */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# define _POSIX_PTHREAD_SEMANTICS 1
-#endif
-/* Enable extensions on HP NonStop. */
-#ifndef _TANDEM_SOURCE
-# define _TANDEM_SOURCE 1
-#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# define __EXTENSIONS__ 1
-#endif
-
-
-/* Define if you want SIGFPE handled (see Include/pyfpe.h). */
-/* #undef WANT_SIGFPE_HANDLER */
-
-/* Define if WINDOW in curses.h offers a field _flags. */
-/* #undef WINDOW_HAS_FLAGS */
-
-/* Define if you want documentation strings in extension modules */
-#define WITH_DOC_STRINGS 1
-
-/* Define if you want to compile in DTrace support */
-/* #undef WITH_DTRACE */
-
-/* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic
- linker (dyld) instead of the old-style (NextStep) dynamic linker (rld).
- Dyld is necessary to support frameworks. */
-#define WITH_DYLD 1
-
-/* Define to 1 if libintl is needed for locale functions. */
-/* #undef WITH_LIBINTL */
-
-/* Define if you want to produce an OpenStep/Rhapsody framework (shared
- library plus accessory files). */
-#define WITH_NEXT_FRAMEWORK 1
-
-/* Define if you want to compile in Python-specific mallocs */
-#define WITH_PYMALLOC 1
-
-/* Define if you want to compile in rudimentary thread support */
-#define WITH_THREAD 1
-
-/* Define if you want pymalloc to be disabled when running under valgrind */
-/* #undef WITH_VALGRIND */
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
- significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-# define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-/* # undef WORDS_BIGENDIAN */
-# endif
-#endif
-
-/* Define if arithmetic is subject to x87-style double rounding issue */
-/* #undef X87_DOUBLE_ROUNDING */
-
-/* Define on OpenBSD to activate all library features */
-/* #undef _BSD_SOURCE */
-
-/* Define on Irix to enable u_int */
-#define _BSD_TYPES 1
-
-/* Define on Darwin to activate all library features */
-#define _DARWIN_C_SOURCE 1
-
-/* This must be set to 64 on some systems to enable large file support. */
-#define _FILE_OFFSET_BITS 64
-
-/* Define on Linux to activate all library features */
-#define _GNU_SOURCE 1
-
-/* Define to include mbstate_t for mbrtowc */
-/* #undef _INCLUDE__STDC_A1_SOURCE */
-
-/* This must be defined on some systems to enable large file support. */
-#define _LARGEFILE_SOURCE 1
-
-/* This must be defined on AIX systems to enable large file support. */
-/* #undef _LARGE_FILES */
-
-/* Define to 1 if on MINIX. */
-/* #undef _MINIX */
-
-/* Define on NetBSD to activate all library features */
-#define _NETBSD_SOURCE 1
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
- this defined. */
-/* #undef _POSIX_1_SOURCE */
-
-/* Define to activate features from IEEE Stds 1003.1-2008 */
-/* #undef _POSIX_C_SOURCE */
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-/* #undef _POSIX_SOURCE */
-
-/* Define if you have POSIX threads, and your system does not define that. */
-/* #undef _POSIX_THREADS */
-
-/* Define to force use of thread-safe errno, h_errno, and other functions */
-#define _REENTRANT 1
-
-/* Define to the level of X/Open that your system supports */
-/* #undef _XOPEN_SOURCE */
-
-/* Define to activate Unix95-and-earlier features */
-/* #undef _XOPEN_SOURCE_EXTENDED */
-
-/* Define on FreeBSD to activate all library features */
-#define __BSD_VISIBLE 1
-
-/* Define to 1 if type `char' is unsigned and you are not using gcc. */
-#ifndef __CHAR_UNSIGNED__
-/* # undef __CHAR_UNSIGNED__ */
-#endif
-
-/* Define to 'long' if doesn't define. */
-/* #undef clock_t */
-
-/* Define to empty if `const' does not conform to ANSI C. */
-/* #undef const */
-
-/* Define to `int' if doesn't define. */
-/* #undef gid_t */
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-/* #undef inline */
-#endif
-
-/* Define to `int' if does not define. */
-/* #undef mode_t */
-
-/* Define to `long int' if does not define. */
-/* #undef off_t */
-
-/* Define to `int' if does not define. */
-/* #undef pid_t */
-
-/* Define to empty if the keyword does not work. */
-/* #undef signed */
-
-/* Define to `unsigned int' if does not define. */
-/* #undef size_t */
-
-/* Define to `int' if does not define. */
-/* #undef socklen_t */
-
-/* Define to `int' if doesn't define. */
-/* #undef uid_t */
-
-/* Define to empty if the keyword does not work. */
-/* #undef volatile */
-
-
-/* Define the macros needed if on a UnixWare 7.x system. */
-#if defined(__USLC__) && defined(__SCO_VERSION__)
-#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
-#endif
-
-#endif /*Py_PYCONFIG_H*/
-
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Makefile b/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Makefile
deleted file mode 100644
index 7e31d1b..0000000
--- a/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Makefile
+++ /dev/null
@@ -1,1786 +0,0 @@
-# Generated automatically from Makefile.pre by makesetup.
-# Top-level Makefile for Python
-#
-# As distributed, this file is called Makefile.pre.in; it is processed
-# into the real Makefile by running the script ./configure, which
-# replaces things like @spam@ with values appropriate for your system.
-# This means that if you edit Makefile, your changes get lost the next
-# time you run the configure script. Ideally, you can do:
-#
-# ./configure
-# make
-# make test
-# make install
-#
-# If you have a previous version of Python installed that you don't
-# want to overwrite, you can use "make altinstall" instead of "make
-# install". Refer to the "Installing" section in the README file for
-# additional details.
-#
-# See also the section "Build instructions" in the README file.
-
-# === Variables set by makesetup ===
-
-MODNAMES= _thread posix errno pwd _sre _codecs _weakref _functools _operator _collections itertools atexit _signal _stat time _locale _io zipimport faulthandler _tracemalloc _symtable xxsubtype
-MODOBJS= Modules/_threadmodule.o Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/zipimport.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o
-MODLIBS= $(LOCALMODLIBS) $(BASEMODLIBS)
-
-# === Variables set by configure
-VERSION= 3.6
-srcdir= /Users/sysadmin/build/v3.6.3
-VPATH= /Users/sysadmin/build/v3.6.3
-abs_srcdir= /Users/sysadmin/build/v3.6.3
-abs_builddir= /private/tmp/_py/_bld/python
-
-
-CC= gcc-4.2
-CXX= g++-4.2
-MAINCC= $(CC)
-LINKCC= $(PURIFY) $(MAINCC)
-AR= ar
-RANLIB= ranlib
-READELF= :
-SOABI= cpython-36m-darwin
-LDVERSION= $(VERSION)$(ABIFLAGS)
-GITVERSION=
-GITTAG=
-GITBRANCH=
-PGO_PROF_GEN_FLAG=-fprofile-instr-generate
-PGO_PROF_USE_FLAG=-fprofile-instr-use=code.profclangd
-LLVM_PROF_MERGER='' merge -output=code.profclangd *.profclangr
-LLVM_PROF_FILE=LLVM_PROFILE_FILE="code-%p.profclangr"
-LLVM_PROF_ERR=yes
-DTRACE=
-DFLAGS=
-DTRACE_HEADERS=
-DTRACE_OBJS=
-
-GNULD= no
-
-# Shell used by make (some versions default to the login shell, which is bad)
-SHELL= /bin/sh
-
-# Use this to make a link between python$(VERSION) and python in $(BINDIR)
-LN= ln
-
-# Portable install script (configure doesn't always guess right)
-INSTALL= /usr/bin/install -c
-INSTALL_PROGRAM=${INSTALL}
-INSTALL_SCRIPT= ${INSTALL}
-INSTALL_DATA= ${INSTALL} -m 644
-# Shared libraries must be installed with executable mode on some systems;
-# rather than figuring out exactly which, we always give them executable mode.
-# Also, making them read-only seems to be a good idea...
-INSTALL_SHARED= ${INSTALL} -m 555
-
-MKDIR_P= /Users/sysadmin/build/v3.6.3/install-sh -c -d
-
-MAKESETUP= $(srcdir)/Modules/makesetup
-
-# Compiler options
-OPT= -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
-BASECFLAGS= -fno-strict-aliasing -Wsign-compare -fno-common -dynamic
-BASECPPFLAGS= -IObjects -IInclude -IPython
-CONFIGURE_CFLAGS= -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -g
-# CFLAGS_NODIST is used for building the interpreter and stdlib C extensions.
-# Use it when a compiler flag should _not_ be part of the distutils CFLAGS
-# once Python is installed (Issue #21121).
-CONFIGURE_CFLAGS_NODIST= -std=c99 -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
-CONFIGURE_CPPFLAGS= -isysroot /Developer/SDKs/MacOSX10.6.sdk
-CONFIGURE_LDFLAGS= -arch i386 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -g
-# Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
-# command line to append to these values without stomping the pre-set
-# values.
-PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
-PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST)
-# Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
-# be able to build extension modules using the directories specified in the
-# environment variables
-PY_CPPFLAGS= $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS)
-PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS)
-NO_AS_NEEDED=
-LDLAST=
-SGI_ABI=
-CCSHARED=
-LINKFORSHARED= -Wl,-stack_size,1000000 -framework CoreFoundation $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
-ARFLAGS= rc
-# Extra C flags added for building the interpreter object files.
-CFLAGSFORSHARED=$(CCSHARED)
-# C flags used for building the interpreter object files
-PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
-# Strict or non-strict aliasing flags used to compile dtoa.c, see above
-CFLAGS_ALIASING=
-
-
-# Machine-dependent subdirectories
-MACHDEP= darwin
-
-# Multiarch directory (may be empty)
-MULTIARCH= darwin
-MULTIARCH_CPPFLAGS = -DMULTIARCH=\"darwin\"
-
-# Install prefix for architecture-independent files
-prefix= /Library/Frameworks/Python.framework/Versions/3.6
-
-# Install prefix for architecture-dependent files
-exec_prefix= ${prefix}
-
-# Install prefix for data files
-datarootdir= ${prefix}/share
-
-# Expanded directories
-BINDIR= ${exec_prefix}/bin
-LIBDIR= ${exec_prefix}/lib
-MANDIR= ${datarootdir}/man
-INCLUDEDIR= ${prefix}/include
-CONFINCLUDEDIR= $(exec_prefix)/include
-SCRIPTDIR= $(prefix)/lib
-ABIFLAGS= m
-
-# Detailed destination directories
-BINLIBDEST= $(LIBDIR)/python$(VERSION)
-LIBDEST= $(SCRIPTDIR)/python$(VERSION)
-INCLUDEPY= $(INCLUDEDIR)/python$(LDVERSION)
-CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(LDVERSION)
-
-# Symbols used for using shared libraries
-SHLIB_SUFFIX= .so
-EXT_SUFFIX= .cpython-36m-darwin.so
-LDSHARED= $(CC) -bundle -undefined dynamic_lookup $(PY_LDFLAGS)
-BLDSHARED= $(CC) -bundle -undefined dynamic_lookup $(PY_LDFLAGS)
-LDCXXSHARED= $(CXX) -bundle -undefined dynamic_lookup
-DESTSHARED= $(BINLIBDEST)/lib-dynload
-
-# Executable suffix (.exe on Windows and Mac OS X)
-EXE=
-BUILDEXE= .exe
-
-# Short name and location for Mac OS X Python framework
-UNIVERSALSDK=/Developer/SDKs/MacOSX10.6.sdk
-PYTHONFRAMEWORK= Python
-PYTHONFRAMEWORKDIR= Python.framework
-PYTHONFRAMEWORKPREFIX= /Library/Frameworks
-PYTHONFRAMEWORKINSTALLDIR= /Library/Frameworks/Python.framework
-# Deployment target selected during configure, to be checked
-# by distutils. The export statement is needed to ensure that the
-# deployment target is active during build.
-MACOSX_DEPLOYMENT_TARGET=10.6
-export MACOSX_DEPLOYMENT_TARGET
-
-# Option to install to strip binaries
-STRIPFLAG=-s
-
-# Flags to lipo to produce a 32-bit-only universal executable
-LIPO_32BIT_FLAGS=-extract i386
-
-# Options to enable prebinding (for fast startup prior to Mac OS X 10.3)
-OTHER_LIBTOOL_OPT=
-
-# Environment to run shared python without installed libraries
-RUNSHARED= DYLD_FRAMEWORK_PATH=/private/tmp/_py/_bld/python
-
-# ensurepip options
-ENSUREPIP= no
-
-# Modes for directories, executables and data files created by the
-# install process. Default to user-only-writable for all file types.
-DIRMODE= 755
-EXEMODE= 755
-FILEMODE= 644
-
-# configure script arguments
-CONFIG_ARGS= '-C' '--enable-framework' '--enable-universalsdk=/Developer/SDKs/MacOSX10.6.sdk' '--with-universal-archs=intel' '--with-computed-gotos' '--without-ensurepip' 'LDFLAGS=-g' 'CFLAGS=-g' 'CC=gcc-4.2'
-
-
-# Subdirectories with code
-SRCDIRS= Parser Grammar Objects Python Modules Mac Programs
-
-# Other subdirectories
-SUBDIRSTOO= Include Lib Misc
-
-# Files and directories to be distributed
-CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in
-DISTFILES= README ChangeLog $(CONFIGFILES)
-DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy
-DIST= $(DISTFILES) $(DISTDIRS)
-
-
-LIBRARY= libpython$(VERSION)$(ABIFLAGS).a
-LDLIBRARY= $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)
-BLDLIBRARY=
-PY3LIBRARY=
-DLLLIBRARY=
-LDLIBRARYDIR=
-INSTSONAME= $(LDLIBRARY)
-
-
-LIBS= -ldl -framework CoreFoundation
-LIBM=
-LIBC=
-SYSLIBS= $(LIBM) $(LIBC)
-SHLIBS= $(LIBS)
-
-THREADOBJ= Python/thread.o
-DLINCLDIR= .
-DYNLOADFILE= dynload_shlib.o
-MACHDEP_OBJS=
-LIBOBJDIR= Python/
-LIBOBJS=
-
-PYTHON= python$(EXE)
-BUILDPYTHON= python$(BUILDEXE)
-
-PYTHON_FOR_REGEN=python3
-PYTHON_FOR_BUILD=./$(BUILDPYTHON) -E
-_PYTHON_HOST_PLATFORM=
-BUILD_GNU_TYPE= x86_64-apple-darwin10.8.0
-HOST_GNU_TYPE= x86_64-apple-darwin10.8.0
-
-# Tcl and Tk config info from --with-tcltk-includes and -libs options
-TCLTK_INCLUDES=
-TCLTK_LIBS=
-
-# The task to run while instrumented when building the profile-opt target.
-# We exclude unittests with -x that take a rediculious amount of time to
-# run in the instrumented training build or do not provide much value.
-PROFILE_TASK=-m test.regrtest --pgo
-
-# report files for gcov / lcov coverage report
-COVERAGE_INFO= $(abs_builddir)/coverage.info
-COVERAGE_REPORT=$(abs_builddir)/lcov-report
-COVERAGE_REPORT_OPTIONS=--no-branch-coverage --title "CPython lcov report"
-
-
-# === Definitions added by makesetup ===
-
-LOCALMODLIBS=
-BASEMODLIBS=
-PYTHONPATH=$(COREPYTHONPATH)
-COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH)
-EXTRAMACHDEPPATH=
-MACHDEPPATH=:$(PLATDIR)
-TESTPATH=
-SITEPATH=
-DESTPATH=
-MACHDESTLIB=$(BINLIBDEST)
-DESTLIB=$(LIBDEST)
-
-
-##########################################################################
-# Modules
-MODULE_OBJS= \
- Modules/config.o \
- Modules/getpath.o \
- Modules/main.o \
- Modules/gcmodule.o
-
-IO_H= Modules/_io/_iomodule.h
-
-IO_OBJS= \
- Modules/_io/_iomodule.o \
- Modules/_io/iobase.o \
- Modules/_io/fileio.o \
- Modules/_io/bufferedio.o \
- Modules/_io/textio.o \
- Modules/_io/bytesio.o \
- Modules/_io/stringio.o
-
-##########################################################################
-
-LIBFFI_INCLUDEDIR=
-
-##########################################################################
-# Parser
-PGEN= Parser/pgen$(EXE)
-
-POBJS= \
- Parser/acceler.o \
- Parser/grammar1.o \
- Parser/listnode.o \
- Parser/node.o \
- Parser/parser.o \
- Parser/bitset.o \
- Parser/metagrammar.o \
- Parser/firstsets.o \
- Parser/grammar.o \
- Parser/pgen.o
-
-PARSER_OBJS= $(POBJS) Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o
-
-PGOBJS= \
- Objects/obmalloc.o \
- Python/dynamic_annotations.o \
- Python/mysnprintf.o \
- Python/pyctype.o \
- Parser/tokenizer_pgen.o \
- Parser/printgrammar.o \
- Parser/parsetok_pgen.o \
- Parser/pgenmain.o
-
-PARSER_HEADERS= \
- $(srcdir)/Parser/parser.h \
- $(srcdir)/Include/parsetok.h \
- $(srcdir)/Parser/tokenizer.h
-
-PGENOBJS= $(POBJS) $(PGOBJS)
-
-##########################################################################
-# Python
-
-PYTHON_OBJS= \
- Python/_warnings.o \
- Python/Python-ast.o \
- Python/asdl.o \
- Python/ast.o \
- Python/bltinmodule.o \
- Python/ceval.o \
- Python/compile.o \
- Python/codecs.o \
- Python/dynamic_annotations.o \
- Python/errors.o \
- Python/frozenmain.o \
- Python/future.o \
- Python/getargs.o \
- Python/getcompiler.o \
- Python/getcopyright.o \
- Python/getplatform.o \
- Python/getversion.o \
- Python/graminit.o \
- Python/import.o \
- Python/importdl.o \
- Python/marshal.o \
- Python/modsupport.o \
- Python/mystrtoul.o \
- Python/mysnprintf.o \
- Python/peephole.o \
- Python/pyarena.o \
- Python/pyctype.o \
- Python/pyfpe.o \
- Python/pyhash.o \
- Python/pylifecycle.o \
- Python/pymath.o \
- Python/pystate.o \
- Python/pythonrun.o \
- Python/pytime.o \
- Python/random.o \
- Python/structmember.o \
- Python/symtable.o \
- Python/sysmodule.o \
- Python/traceback.o \
- Python/getopt.o \
- Python/pystrcmp.o \
- Python/pystrtod.o \
- Python/pystrhex.o \
- Python/dtoa.o \
- Python/formatter_unicode.o \
- Python/fileutils.o \
- Python/$(DYNLOADFILE) \
- $(LIBOBJS) \
- $(MACHDEP_OBJS) \
- $(THREADOBJ) \
- $(DTRACE_OBJS)
-
-
-##########################################################################
-# Objects
-OBJECT_OBJS= \
- Objects/abstract.o \
- Objects/accu.o \
- Objects/boolobject.o \
- Objects/bytes_methods.o \
- Objects/bytearrayobject.o \
- Objects/bytesobject.o \
- Objects/cellobject.o \
- Objects/classobject.o \
- Objects/codeobject.o \
- Objects/complexobject.o \
- Objects/descrobject.o \
- Objects/enumobject.o \
- Objects/exceptions.o \
- Objects/genobject.o \
- Objects/fileobject.o \
- Objects/floatobject.o \
- Objects/frameobject.o \
- Objects/funcobject.o \
- Objects/iterobject.o \
- Objects/listobject.o \
- Objects/longobject.o \
- Objects/dictobject.o \
- Objects/odictobject.o \
- Objects/memoryobject.o \
- Objects/methodobject.o \
- Objects/moduleobject.o \
- Objects/namespaceobject.o \
- Objects/object.o \
- Objects/obmalloc.o \
- Objects/capsule.o \
- Objects/rangeobject.o \
- Objects/setobject.o \
- Objects/sliceobject.o \
- Objects/structseq.o \
- Objects/tupleobject.o \
- Objects/typeobject.o \
- Objects/unicodeobject.o \
- Objects/unicodectype.o \
- Objects/weakrefobject.o
-
-##########################################################################
-# objects that get linked into the Python library
-LIBRARY_OBJS_OMIT_FROZEN= \
- Modules/getbuildinfo.o \
- $(PARSER_OBJS) \
- $(OBJECT_OBJS) \
- $(PYTHON_OBJS) \
- $(MODULE_OBJS) \
- $(MODOBJS)
-
-LIBRARY_OBJS= \
- $(LIBRARY_OBJS_OMIT_FROZEN) \
- Python/frozen.o
-
-##########################################################################
-# DTrace
-
-# On some systems, object files that reference DTrace probes need to be modified
-# in-place by dtrace(1).
-DTRACE_DEPS = \
- Python/ceval.o
-# XXX: should gcmodule, etc. be here, too?
-
-#########################################################################
-# Rules
-
-# Default target
-all: build_all
-build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Programs/_testembed python-config
-
-# Compile a binary with profile guided optimization.
-profile-opt:
- @if [ $(LLVM_PROF_ERR) = yes ]; then \
- echo "Error: Cannot perform PGO build because llvm-profdata was not found in PATH" ;\
- echo "Please add it to PATH and run ./configure again" ;\
- exit 1;\
- fi
- @echo "Building with support for profile generation:"
- $(MAKE) clean
- $(MAKE) profile-removal
- $(MAKE) build_all_generate_profile
- $(MAKE) profile-removal
- @echo "Running code to generate profile data (this can take a while):"
- $(MAKE) run_profile_task
- $(MAKE) build_all_merge_profile
- @echo "Rebuilding with profile guided optimizations:"
- $(MAKE) clean
- $(MAKE) build_all_use_profile
- $(MAKE) profile-removal
-
-build_all_generate_profile:
- $(MAKE) all CFLAGS_NODIST="$(CFLAGS) $(PGO_PROF_GEN_FLAG) " LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) " LIBS="$(LIBS)"
-
-run_profile_task:
- : # FIXME: can't run for a cross build
- $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) || true
-
-build_all_merge_profile:
- $(LLVM_PROF_MERGER)
-
-build_all_use_profile:
- $(MAKE) all CFLAGS_NODIST="$(CFLAGS) $(PGO_PROF_USE_FLAG) " LDFLAGS="$(LDFLAGS) "
-
-# Compile and run with gcov
-.PHONY=coverage coverage-lcov coverage-report
-coverage:
- @echo "Building with support for coverage checking:"
- $(MAKE) clean profile-removal
- $(MAKE) all CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"
-
-coverage-lcov:
- @echo "Creating Coverage HTML report with LCOV:"
- @rm -f $(COVERAGE_INFO)
- @rm -rf $(COVERAGE_REPORT)
- @lcov --capture --directory $(abs_builddir) \
- --base-directory $(realpath $(abs_builddir)) \
- --path $(realpath $(abs_srcdir)) \
- --output-file $(COVERAGE_INFO)
- : # remove 3rd party modules, system headers and internal files with
- : # debug, test or dummy functions.
- @lcov --remove $(COVERAGE_INFO) \
- '*/Modules/_blake2/impl/*' \
- '*/Modules/_ctypes/libffi*/*' \
- '*/Modules/_decimal/libmpdec/*' \
- '*/Modules/_sha3/kcp/*' \
- '*/Modules/expat/*' \
- '*/Modules/zlib/*' \
- '*/Include/*' \
- '*/Modules/xx*.c' \
- '*/Parser/listnode.c' \
- '*/Python/pyfpe.c' \
- '*/Python/pystrcmp.c' \
- '/usr/include/*' \
- '/usr/local/include/*' \
- '/usr/lib/gcc/*' \
- --output-file $(COVERAGE_INFO)
- @genhtml $(COVERAGE_INFO) --output-directory $(COVERAGE_REPORT) \
- $(COVERAGE_REPORT_OPTIONS)
- @echo
- @echo "lcov report at $(COVERAGE_REPORT)/index.html"
- @echo
-
-# Force regeneration of parser and importlib
-coverage-report: regen-grammar regen-importlib
- : # force rebuilding of parser and importlib
- @touch $(GRAMMAR_INPUT)
- @touch $(srcdir)/Lib/importlib/_bootstrap.py
- @touch $(srcdir)/Lib/importlib/_bootstrap_external.py
- : # build with coverage info
- $(MAKE) coverage
- : # run tests, ignore failures
- $(TESTRUNNER) $(TESTOPTS) || true
- : # build lcov report
- $(MAKE) coverage-lcov
-
-# Run "Argument Clinic" over all source files
-# (depends on python having already been built)
-.PHONY=clinic
-clinic: $(BUILDPYTHON) $(srcdir)/Modules/_blake2/blake2s_impl.c
- $(RUNSHARED) $(PYTHON_FOR_BUILD) ./Tools/clinic/clinic.py --make
-
-# Build the interpreter
-$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
- $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-
-platform: $(BUILDPYTHON) pybuilddir.txt
- $(RUNSHARED) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform
-
-# Create build directory and generate the sysconfig build-time data there.
-# pybuilddir.txt contains the name of the build dir and is used for
-# sys.path fixup -- see Modules/getpath.c.
-# Since this step runs before shared modules are built, try to avoid bootstrap
-# problems by creating a dummy pybuilddir.txt just to allow interpreter
-# initialization to succeed. It will be overwritten by generate-posix-vars
-# or removed in case of failure.
-pybuilddir.txt: $(BUILDPYTHON)
- @echo "none" > ./pybuilddir.txt
- $(RUNSHARED) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ;\
- if test $$? -ne 0 ; then \
- echo "generate-posix-vars failed" ; \
- rm -f ./pybuilddir.txt ; \
- exit 1 ; \
- fi
-
-# This is shared by the math and cmath modules
-Modules/_math.o: Modules/_math.c Modules/_math.h
- $(CC) -c $(CCSHARED) $(PY_CORE_CFLAGS) -o $@ $<
-
-# blake2s is auto-generated from blake2b
-$(srcdir)/Modules/_blake2/blake2s_impl.c: $(BUILDPYTHON) $(srcdir)/Modules/_blake2/blake2b_impl.c $(srcdir)/Modules/_blake2/blake2b2s.py
- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/Modules/_blake2/blake2b2s.py
- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/Tools/clinic/clinic.py -f $@
-
-# Build the shared modules
-# Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
-# -s, --silent or --quiet is always the first char.
-# Under BSD make, MAKEFLAGS might be " -s -v x=y".
-sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
- @case "$$MAKEFLAGS" in \
- *\ -s*|s*) quiet="-q";; \
- *) quiet="";; \
- esac; \
- $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
- _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
- $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
-
-
-# Build static library
-# avoid long command lines, same as LIBRARY_OBJS
-$(LIBRARY): $(LIBRARY_OBJS)
- -rm -f $@
- $(AR) $(ARFLAGS) $@ Modules/getbuildinfo.o
- $(AR) $(ARFLAGS) $@ $(PARSER_OBJS)
- $(AR) $(ARFLAGS) $@ $(OBJECT_OBJS)
- $(AR) $(ARFLAGS) $@ $(PYTHON_OBJS) Python/frozen.o
- $(AR) $(ARFLAGS) $@ $(MODULE_OBJS)
- $(AR) $(ARFLAGS) $@ $(MODOBJS)
- $(RANLIB) $@
-
-libpython$(LDVERSION).so: $(LIBRARY_OBJS)
- if test $(INSTSONAME) != $(LDLIBRARY); then \
- $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
- $(LN) -f $(INSTSONAME) $@; \
- else \
- $(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
- fi
-
-libpython3.so: libpython$(LDVERSION).so
- $(BLDSHARED) $(NO_AS_NEEDED) -o $@ -Wl,-h$@ $^
-
-libpython$(LDVERSION).dylib: $(LIBRARY_OBJS)
- $(CC) -dynamiclib -Wl,-single_module $(PY_LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(LDVERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
-
-
-libpython$(VERSION).sl: $(LIBRARY_OBJS)
- $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
-
-# Copy up the gdb python hooks into a position where they can be automatically
-# loaded by gdb during Lib/test/test_gdb.py
-#
-# Distributors are likely to want to install this somewhere else e.g. relative
-# to the stripped DWARF data for the shared library.
-gdbhooks: $(BUILDPYTHON)-gdb.py
-
-SRC_GDB_HOOKS=$(srcdir)/Tools/gdb/libpython.py
-$(BUILDPYTHON)-gdb.py: $(SRC_GDB_HOOKS)
- $(INSTALL_DATA) $(SRC_GDB_HOOKS) $(BUILDPYTHON)-gdb.py
-
-# This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary
-# minimal framework (not including the Lib directory and such) in the current
-# directory.
-RESSRCDIR=Mac/Resources/framework
-$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
- $(LIBRARY) \
- $(RESSRCDIR)/Info.plist
- $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
- $(CC) -o $(LDLIBRARY) $(PY_LDFLAGS) -dynamiclib \
- -all_load $(LIBRARY) -Wl,-single_module \
- -install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
- -compatibility_version $(VERSION) \
- -current_version $(VERSION) \
- -framework CoreFoundation $(LIBS);
- $(INSTALL) -d -m $(DIRMODE) \
- $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj
- $(INSTALL_DATA) $(RESSRCDIR)/Info.plist \
- $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist
- $(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current
- $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK)
- $(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources
-
-# This rule builds the Cygwin Python DLL and import library if configured
-# for a shared core library; otherwise, this rule is a noop.
-$(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
- if test -n "$(DLLLIBRARY)"; then \
- $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
- $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \
- else true; \
- fi
-
-
-oldsharedmods: $(SHAREDMODS)
-
-
-Makefile Modules/config.c: Makefile.pre \
- $(srcdir)/Modules/config.c.in \
- $(MAKESETUP) \
- Modules/Setup.config \
- Modules/Setup \
- Modules/Setup.local
- $(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
- -s Modules \
- Modules/Setup.config \
- Modules/Setup.local \
- Modules/Setup
- @mv config.c Modules
- @echo "The Makefile was updated, you may need to re-run make."
-
-
-Modules/Setup: $(srcdir)/Modules/Setup.dist
- @if test -f Modules/Setup; then \
- echo "-----------------------------------------------"; \
- echo "Modules/Setup.dist is newer than Modules/Setup;"; \
- echo "check to make sure you have all the updates you"; \
- echo "need in your Modules/Setup file."; \
- echo "Usually, copying Modules/Setup.dist to Modules/Setup will work."; \
- echo "-----------------------------------------------"; \
- fi
-
-Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
- $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-
-############################################################################
-# Importlib
-
-Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
-
-Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
- $(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
-
-.PHONY: regen-importlib
-regen-importlib: Programs/_freeze_importlib
- # Regenerate Python/importlib_external.h
- # from Lib/importlib/_bootstrap_external.py using _freeze_importlib
- ./Programs/_freeze_importlib \
- $(srcdir)/Lib/importlib/_bootstrap_external.py \
- $(srcdir)/Python/importlib_external.h
- # Regenerate Python/importlib.h from Lib/importlib/_bootstrap.py
- # using _freeze_importlib
- ./Programs/_freeze_importlib \
- $(srcdir)/Lib/importlib/_bootstrap.py \
- $(srcdir)/Python/importlib.h
-
-
-############################################################################
-# Regenerate all generated files
-
-regen-all: regen-opcode regen-opcode-targets regen-typeslots regen-grammar regen-ast regen-importlib
-
-############################################################################
-# Special rules for object files
-
-Modules/getbuildinfo.o: $(PARSER_OBJS) \
- $(OBJECT_OBJS) \
- $(PYTHON_OBJS) \
- $(MODULE_OBJS) \
- $(MODOBJS) \
- $(srcdir)/Modules/getbuildinfo.c
- $(CC) -c $(PY_CORE_CFLAGS) \
- -DGITVERSION="\"`LC_ALL=C $(GITVERSION)`\"" \
- -DGITTAG="\"`LC_ALL=C $(GITTAG)`\"" \
- -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \
- -o $@ $(srcdir)/Modules/getbuildinfo.c
-
-Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
- $(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
- -DPREFIX='"$(prefix)"' \
- -DEXEC_PREFIX='"$(exec_prefix)"' \
- -DVERSION='"$(VERSION)"' \
- -DVPATH='"$(VPATH)"' \
- -o $@ $(srcdir)/Modules/getpath.c
-
-Programs/python.o: $(srcdir)/Programs/python.c
- $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/python.c
-
-Programs/_testembed.o: $(srcdir)/Programs/_testembed.c
- $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/_testembed.c
-
-Modules/_sre.o: $(srcdir)/Modules/_sre.c $(srcdir)/Modules/sre.h $(srcdir)/Modules/sre_constants.h $(srcdir)/Modules/sre_lib.h
-
-Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c $(srcdir)/Modules/posixmodule.h
-
-Modules/grpmodule.o: $(srcdir)/Modules/grpmodule.c $(srcdir)/Modules/posixmodule.h
-
-Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule.h
-
-Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c $(srcdir)/Modules/posixmodule.h
-
-Python/dynload_shlib.o: $(srcdir)/Python/dynload_shlib.c Makefile
- $(CC) -c $(PY_CORE_CFLAGS) \
- -DSOABI='"$(SOABI)"' \
- -o $@ $(srcdir)/Python/dynload_shlib.c
-
-Python/dynload_hpux.o: $(srcdir)/Python/dynload_hpux.c Makefile
- $(CC) -c $(PY_CORE_CFLAGS) \
- -DSHLIB_EXT='"$(EXT_SUFFIX)"' \
- -o $@ $(srcdir)/Python/dynload_hpux.c
-
-Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile
- $(CC) -c $(PY_CORE_CFLAGS) \
- -DABIFLAGS='"$(ABIFLAGS)"' \
- $(MULTIARCH_CPPFLAGS) \
- -o $@ $(srcdir)/Python/sysmodule.c
-
-$(IO_OBJS): $(IO_H)
-
-$(PGEN): $(PGENOBJS)
- $(CC) $(OPT) $(PY_LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
-
-.PHONY: regen-grammar
-regen-grammar: $(PGEN)
- # Regenerate Include/graminit.h and Python/graminit.c
- # from Grammar/Grammar using pgen
- @$(MKDIR_P) Include
- $(PGEN) $(srcdir)/Grammar/Grammar \
- $(srcdir)/Include/graminit.h \
- $(srcdir)/Python/graminit.c
-
-Parser/grammar.o: $(srcdir)/Parser/grammar.c \
- $(srcdir)/Include/token.h \
- $(srcdir)/Include/grammar.h
-Parser/metagrammar.o: $(srcdir)/Parser/metagrammar.c
-
-Parser/tokenizer_pgen.o: $(srcdir)/Parser/tokenizer.c
-Parser/parsetok_pgen.o: $(srcdir)/Parser/parsetok.c
-Parser/printgrammar.o: $(srcdir)/Parser/printgrammar.c
-
-Parser/pgenmain.o: $(srcdir)/Include/parsetok.h
-
-.PHONY=regen-ast
-regen-ast:
- # Regenerate Include/Python-ast.h using Parser/asdl_c.py -h
- $(MKDIR_P) $(srcdir)/Include
- $(PYTHON_FOR_REGEN) $(srcdir)/Parser/asdl_c.py \
- -h $(srcdir)/Include \
- $(srcdir)/Parser/Python.asdl
- # Regenerate Python/Python-ast.c using Parser/asdl_c.py -c
- $(MKDIR_P) $(srcdir)/Python
- $(PYTHON_FOR_REGEN) $(srcdir)/Parser/asdl_c.py \
- -c $(srcdir)/Python \
- $(srcdir)/Parser/Python.asdl
-
-.PHONY: regen-opcode
-regen-opcode:
- # Regenerate Include/opcode.h from Lib/opcode.py
- # using Tools/scripts/generate_opcode_h.py
- $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_opcode_h.py \
- $(srcdir)/Lib/opcode.py \
- $(srcdir)/Include/opcode.h
-
-Python/compile.o Python/symtable.o Python/ast.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
-
-Python/getplatform.o: $(srcdir)/Python/getplatform.c
- $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
-
-Python/importdl.o: $(srcdir)/Python/importdl.c
- $(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
-
-Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \
- $(srcdir)/Objects/unicodetype_db.h
-
-BYTESTR_DEPS = \
- $(srcdir)/Objects/stringlib/count.h \
- $(srcdir)/Objects/stringlib/ctype.h \
- $(srcdir)/Objects/stringlib/fastsearch.h \
- $(srcdir)/Objects/stringlib/find.h \
- $(srcdir)/Objects/stringlib/join.h \
- $(srcdir)/Objects/stringlib/partition.h \
- $(srcdir)/Objects/stringlib/split.h \
- $(srcdir)/Objects/stringlib/stringdefs.h \
- $(srcdir)/Objects/stringlib/transmogrify.h
-
-UNICODE_DEPS = \
- $(srcdir)/Objects/stringlib/asciilib.h \
- $(srcdir)/Objects/stringlib/codecs.h \
- $(srcdir)/Objects/stringlib/count.h \
- $(srcdir)/Objects/stringlib/fastsearch.h \
- $(srcdir)/Objects/stringlib/find.h \
- $(srcdir)/Objects/stringlib/find_max_char.h \
- $(srcdir)/Objects/stringlib/localeutil.h \
- $(srcdir)/Objects/stringlib/partition.h \
- $(srcdir)/Objects/stringlib/replace.h \
- $(srcdir)/Objects/stringlib/split.h \
- $(srcdir)/Objects/stringlib/ucs1lib.h \
- $(srcdir)/Objects/stringlib/ucs2lib.h \
- $(srcdir)/Objects/stringlib/ucs4lib.h \
- $(srcdir)/Objects/stringlib/undef.h \
- $(srcdir)/Objects/stringlib/unicode_format.h \
- $(srcdir)/Objects/stringlib/unicodedefs.h
-
-Objects/bytes_methods.o: $(srcdir)/Objects/bytes_methods.c $(BYTESTR_DEPS)
-Objects/bytesobject.o: $(srcdir)/Objects/bytesobject.c $(BYTESTR_DEPS)
-Objects/bytearrayobject.o: $(srcdir)/Objects/bytearrayobject.c $(BYTESTR_DEPS)
-
-Objects/unicodeobject.o: $(srcdir)/Objects/unicodeobject.c $(UNICODE_DEPS)
-
-Objects/odictobject.o: $(srcdir)/Objects/dict-common.h
-Objects/dictobject.o: $(srcdir)/Objects/stringlib/eq.h $(srcdir)/Objects/dict-common.h
-Objects/setobject.o: $(srcdir)/Objects/stringlib/eq.h
-
-.PHONY: regen-opcode-targets
-regen-opcode-targets:
- # Regenerate Python/opcode_targets.h from Lib/opcode.py
- # using Python/makeopcodetargets.py
- $(PYTHON_FOR_REGEN) $(srcdir)/Python/makeopcodetargets.py \
- $(srcdir)/Python/opcode_targets.h
-
-Python/ceval.o: $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/ceval_gil.h
-
-Python/frozen.o: $(srcdir)/Python/importlib.h $(srcdir)/Python/importlib_external.h
-
-# Generate DTrace probe macros, then rename them (PYTHON_ -> PyDTrace_) to
-# follow our naming conventions. dtrace(1) uses the output filename to generate
-# an include guard, so we can't use a pipeline to transform its output.
-Include/pydtrace_probes.h: $(srcdir)/Include/pydtrace.d
- $(MKDIR_P) Include
- $(DTRACE) $(DFLAGS) -o $@ -h -s $<
- : sed in-place edit with POSIX-only tools
- sed 's/PYTHON_/PyDTrace_/' $@ > $@.tmp
- mv $@.tmp $@
-
-Python/pydtrace.o: $(srcdir)/Include/pydtrace.d $(DTRACE_DEPS)
- $(DTRACE) $(DFLAGS) -o $@ -G -s $< $(DTRACE_DEPS)
-
-Objects/typeobject.o: Objects/typeslots.inc
-
-.PHONY: regen-typeslots
-regen-typeslots:
- # Regenerate Objects/typeslots.inc from Include/typeslotsh
- # using Objects/typeslots.py
- $(PYTHON_FOR_REGEN) $(srcdir)/Objects/typeslots.py \
- < $(srcdir)/Include/typeslots.h \
- $(srcdir)/Objects/typeslots.inc
-
-############################################################################
-# Header files
-
-PYTHON_HEADERS= \
- $(srcdir)/Include/Python.h \
- $(srcdir)/Include/abstract.h \
- $(srcdir)/Include/accu.h \
- $(srcdir)/Include/asdl.h \
- $(srcdir)/Include/ast.h \
- $(srcdir)/Include/bltinmodule.h \
- $(srcdir)/Include/bitset.h \
- $(srcdir)/Include/boolobject.h \
- $(srcdir)/Include/bytes_methods.h \
- $(srcdir)/Include/bytearrayobject.h \
- $(srcdir)/Include/bytesobject.h \
- $(srcdir)/Include/cellobject.h \
- $(srcdir)/Include/ceval.h \
- $(srcdir)/Include/classobject.h \
- $(srcdir)/Include/code.h \
- $(srcdir)/Include/codecs.h \
- $(srcdir)/Include/compile.h \
- $(srcdir)/Include/complexobject.h \
- $(srcdir)/Include/descrobject.h \
- $(srcdir)/Include/dictobject.h \
- $(srcdir)/Include/dtoa.h \
- $(srcdir)/Include/dynamic_annotations.h \
- $(srcdir)/Include/enumobject.h \
- $(srcdir)/Include/errcode.h \
- $(srcdir)/Include/eval.h \
- $(srcdir)/Include/fileobject.h \
- $(srcdir)/Include/fileutils.h \
- $(srcdir)/Include/floatobject.h \
- $(srcdir)/Include/frameobject.h \
- $(srcdir)/Include/funcobject.h \
- $(srcdir)/Include/genobject.h \
- $(srcdir)/Include/import.h \
- $(srcdir)/Include/intrcheck.h \
- $(srcdir)/Include/iterobject.h \
- $(srcdir)/Include/listobject.h \
- $(srcdir)/Include/longintrepr.h \
- $(srcdir)/Include/longobject.h \
- $(srcdir)/Include/marshal.h \
- $(srcdir)/Include/memoryobject.h \
- $(srcdir)/Include/metagrammar.h \
- $(srcdir)/Include/methodobject.h \
- $(srcdir)/Include/modsupport.h \
- $(srcdir)/Include/moduleobject.h \
- $(srcdir)/Include/namespaceobject.h \
- $(srcdir)/Include/node.h \
- $(srcdir)/Include/object.h \
- $(srcdir)/Include/objimpl.h \
- $(srcdir)/Include/opcode.h \
- $(srcdir)/Include/osdefs.h \
- $(srcdir)/Include/osmodule.h \
- $(srcdir)/Include/patchlevel.h \
- $(srcdir)/Include/pgen.h \
- $(srcdir)/Include/pgenheaders.h \
- $(srcdir)/Include/pyarena.h \
- $(srcdir)/Include/pyatomic.h \
- $(srcdir)/Include/pycapsule.h \
- $(srcdir)/Include/pyctype.h \
- $(srcdir)/Include/pydebug.h \
- $(srcdir)/Include/pydtrace.h \
- $(srcdir)/Include/pyerrors.h \
- $(srcdir)/Include/pyfpe.h \
- $(srcdir)/Include/pyhash.h \
- $(srcdir)/Include/pylifecycle.h \
- $(srcdir)/Include/pymath.h \
- $(srcdir)/Include/pygetopt.h \
- $(srcdir)/Include/pymacro.h \
- $(srcdir)/Include/pymem.h \
- $(srcdir)/Include/pyport.h \
- $(srcdir)/Include/pystate.h \
- $(srcdir)/Include/pystrcmp.h \
- $(srcdir)/Include/pystrtod.h \
- $(srcdir)/Include/pystrhex.h \
- $(srcdir)/Include/pythonrun.h \
- $(srcdir)/Include/pythread.h \
- $(srcdir)/Include/pytime.h \
- $(srcdir)/Include/rangeobject.h \
- $(srcdir)/Include/setobject.h \
- $(srcdir)/Include/sliceobject.h \
- $(srcdir)/Include/structmember.h \
- $(srcdir)/Include/structseq.h \
- $(srcdir)/Include/symtable.h \
- $(srcdir)/Include/sysmodule.h \
- $(srcdir)/Include/traceback.h \
- $(srcdir)/Include/tupleobject.h \
- $(srcdir)/Include/ucnhash.h \
- $(srcdir)/Include/unicodeobject.h \
- $(srcdir)/Include/warnings.h \
- $(srcdir)/Include/weakrefobject.h \
- pyconfig.h \
- $(PARSER_HEADERS) \
- $(srcdir)/Include/Python-ast.h \
- $(DTRACE_HEADERS)
-
-$(LIBRARY_OBJS) $(MODOBJS) Programs/python.o: $(PYTHON_HEADERS)
-
-
-######################################################################
-
-TESTOPTS= $(EXTRATESTOPTS)
-TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) $(TESTPYTHONOPTS)
-TESTRUNNER= $(TESTPYTHON) $(srcdir)/Tools/scripts/run_tests.py
-TESTTIMEOUT= 1200
-
-.PHONY: test testall testuniversal buildbottest pythoninfo
-
-# Run a basic set of regression tests.
-# This excludes some tests that are particularly resource-intensive.
-test: all platform
- $(TESTRUNNER) $(TESTOPTS)
-
-# Run the full test suite twice - once without .pyc files, and once with.
-# In the past, we've had problems where bugs in the marshalling or
-# elsewhere caused bytecode read from .pyc files to behave differently
-# than bytecode generated directly from a .py source file. Sometimes
-# the bytecode read from a .pyc file had the bug, sometimes the directly
-# generated bytecode. This is sometimes a very shy bug needing a lot of
-# sample data.
-testall: all platform
- -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
- $(TESTPYTHON) -E $(srcdir)/Lib/compileall.py
- -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
- -$(TESTRUNNER) -u all $(TESTOPTS)
- $(TESTRUNNER) -u all $(TESTOPTS)
-
-# Run the test suite for both architectures in a Universal build on OSX.
-# Must be run on an Intel box.
-testuniversal: all platform
- if [ `arch` != 'i386' ];then \
- echo "This can only be used on OSX/i386" ;\
- exit 1 ;\
- fi
- $(TESTRUNNER) -u all $(TESTOPTS)
- $(RUNSHARED) /usr/libexec/oah/translate \
- ./$(BUILDPYTHON) -E -m test -j 0 -u all $(TESTOPTS)
-
-# Like testall, but with only one pass and without multiple processes.
-# Run an optional script to include information about the build environment.
-buildbottest: build_all platform
- -@if which pybuildbot.identify >/dev/null 2>&1; then \
- pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \
- fi
- $(TESTRUNNER) -j 1 -u all -W --slowest --timeout=$(TESTTIMEOUT) $(TESTOPTS)
-
-pythoninfo: build_all
- $(RUNSHARED) ./$(BUILDPYTHON) -m test.pythoninfo
-
-QUICKTESTOPTS= $(TESTOPTS) -x test_subprocess test_io test_lib2to3 \
- test_multibytecodec test_urllib2_localnet test_itertools \
- test_multiprocessing_fork test_multiprocessing_spawn \
- test_multiprocessing_forkserver \
- test_mailbox test_socket test_poll \
- test_select test_zipfile test_concurrent_futures
-quicktest: all platform
- $(TESTRUNNER) $(QUICKTESTOPTS)
-
-# SSL tests
-.PHONY: multisslcompile multissltest
-multisslcompile: build_all
- $(RUNSHARED) ./$(BUILDPYTHON) Tools/ssl/multissltests.py --compile-only
-
-multissltest: build_all
- $(RUNSHARED) ./$(BUILDPYTHON) Tools/ssl/multissltests.py
-
-install: frameworkinstallstructure commoninstall bininstall maninstall frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
- if test "x$(ENSUREPIP)" != "xno" ; then \
- case $(ENSUREPIP) in \
- upgrade) ensurepip="--upgrade" ;; \
- install|*) ensurepip="" ;; \
- esac; \
- $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
- $$ensurepip --root=$(DESTDIR)/ ; \
- fi
-
-altinstall: commoninstall
- if test "x$(ENSUREPIP)" != "xno" ; then \
- case $(ENSUREPIP) in \
- upgrade) ensurepip="--altinstall --upgrade" ;; \
- install|*) ensurepip="--altinstall" ;; \
- esac; \
- $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
- $$ensurepip --root=$(DESTDIR)/ ; \
- fi
-
-commoninstall: frameworkinstallstructure \
- altbininstall libinstall inclinstall libainstall \
- sharedinstall oldsharedinstall altmaninstall \
- frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools
-
-# Install shared libraries enabled by Setup
-DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)
-
-oldsharedinstall: $(DESTSHARED) $(SHAREDMODS)
- @for i in X $(SHAREDMODS); do \
- if test $$i != X; then \
- echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \
- $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \
- fi; \
- done
-
-$(DESTSHARED):
- @for i in $(DESTDIRS); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
-
-# Install the interpreter with $(VERSION) affixed
-# This goes into $(exec_prefix)
-altbininstall: $(BUILDPYTHON) frameworkpythonw
- @for i in $(BINDIR) $(LIBDIR); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- if test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \
- $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \
- else \
- $(INSTALL_PROGRAM) $(STRIPFLAG) Mac/pythonw $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \
- fi
- -if test "$(VERSION)" != "$(LDVERSION)"; then \
- if test -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE) -o -h $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
- then rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
- fi; \
- (cd $(DESTDIR)$(BINDIR); $(LN) python$(LDVERSION)$(EXE) python$(VERSION)$(EXE)); \
- fi
- if test -f $(LDLIBRARY) && test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \
- if test -n "$(DLLLIBRARY)" ; then \
- $(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \
- else \
- $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \
- if test $(LDLIBRARY) != $(INSTSONAME); then \
- (cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) $(LDLIBRARY)) \
- fi \
- fi; \
- if test -n "$(PY3LIBRARY)"; then \
- $(INSTALL_SHARED) $(PY3LIBRARY) $(DESTDIR)$(LIBDIR)/$(PY3LIBRARY); \
- fi; \
- else true; \
- fi
- if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \
- rm -f $(DESTDIR)$(BINDIR)python$(VERSION)-32$(EXE); \
- lipo $(LIPO_32BIT_FLAGS) \
- -output $(DESTDIR)$(BINDIR)/python$(VERSION)-32$(EXE) \
- $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
- fi
-
-bininstall: altbininstall
- if test ! -d $(DESTDIR)$(LIBPC); then \
- echo "Creating directory $(LIBPC)"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC); \
- fi
- -if test -f $(DESTDIR)$(BINDIR)/python3$(EXE) -o -h $(DESTDIR)$(BINDIR)/python3$(EXE); \
- then rm -f $(DESTDIR)$(BINDIR)/python3$(EXE); \
- else true; \
- fi
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python3$(EXE))
- -if test "$(VERSION)" != "$(LDVERSION)"; then \
- rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \
- rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION).pc; \
- (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python-$(LDVERSION).pc); \
- fi
- -rm -f $(DESTDIR)$(BINDIR)/python3-config
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python3-config)
- -rm -f $(DESTDIR)$(LIBPC)/python3.pc
- (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc)
- -rm -f $(DESTDIR)$(BINDIR)/idle3
- (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
- -rm -f $(DESTDIR)$(BINDIR)/pydoc3
- (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
- -rm -f $(DESTDIR)$(BINDIR)/2to3
- (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
- -rm -f $(DESTDIR)$(BINDIR)/pyvenv
- (cd $(DESTDIR)$(BINDIR); $(LN) -s pyvenv-$(VERSION) pyvenv)
- if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \
- rm -f $(DESTDIR)$(BINDIR)/python3-32$(EXE); \
- (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-32$(EXE) python3-32$(EXE)) \
- fi
-
-# Install the versioned manual page
-altmaninstall:
- @for i in $(MANDIR) $(MANDIR)/man1; \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- $(INSTALL_DATA) $(srcdir)/Misc/python.man \
- $(DESTDIR)$(MANDIR)/man1/python$(VERSION).1
-
-# Install the unversioned manual page
-maninstall: altmaninstall
- -rm -f $(DESTDIR)$(MANDIR)/man1/python3.1
- (cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python$(VERSION).1 python3.1)
-
-# Install the library
-XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax
-LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
- tkinter/test/test_ttk site-packages test \
- test/audiodata \
- test/capath test/data \
- test/cjkencodings test/decimaltestdata test/xmltestdata \
- test/dtracedata \
- test/eintrdata \
- test/imghdrdata \
- test/libregrtest \
- test/subprocessdata test/sndhdrdata test/support \
- test/tracedmodules test/encoded_modules \
- test/test_import \
- test/test_import/data \
- test/test_import/data/circular_imports \
- test/test_import/data/circular_imports/subpkg \
- test/test_import/data/package \
- test/test_import/data/package2 \
- test/test_importlib/namespace_pkgs \
- test/test_importlib/namespace_pkgs/both_portions \
- test/test_importlib/namespace_pkgs/both_portions/foo \
- test/test_importlib/namespace_pkgs/not_a_namespace_pkg \
- test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo \
- test/test_importlib/namespace_pkgs/portion1 \
- test/test_importlib/namespace_pkgs/portion1/foo \
- test/test_importlib/namespace_pkgs/portion2 \
- test/test_importlib/namespace_pkgs/portion2/foo \
- test/test_importlib/namespace_pkgs/project1 \
- test/test_importlib/namespace_pkgs/project1/parent \
- test/test_importlib/namespace_pkgs/project1/parent/child \
- test/test_importlib/namespace_pkgs/project2 \
- test/test_importlib/namespace_pkgs/project2/parent \
- test/test_importlib/namespace_pkgs/project2/parent/child \
- test/test_importlib/namespace_pkgs/project3 \
- test/test_importlib/namespace_pkgs/project3/parent \
- test/test_importlib/namespace_pkgs/project3/parent/child \
- test/test_importlib/namespace_pkgs/module_and_namespace_package \
- test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
- asyncio \
- test/test_asyncio \
- collections concurrent concurrent/futures encodings \
- email email/mime test/test_email test/test_email/data \
- ensurepip ensurepip/_bundled \
- html json test/test_json http dbm xmlrpc \
- sqlite3 sqlite3/test \
- logging csv wsgiref urllib \
- lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
- lib2to3/tests/data lib2to3/tests/data/fixers \
- lib2to3/tests/data/fixers/myfixes \
- ctypes ctypes/test ctypes/macholib \
- idlelib idlelib/Icons idlelib/idle_test \
- distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
- importlib test/test_importlib test/test_importlib/builtin \
- test/test_importlib/extension test/test_importlib/frozen \
- test/test_importlib/import_ test/test_importlib/source \
- test/test_tools test/test_warnings test/test_warnings/data \
- turtledemo \
- multiprocessing multiprocessing/dummy \
- unittest unittest/test unittest/test/testmock \
- venv venv/scripts venv/scripts/common venv/scripts/posix \
- curses pydoc_data
-libinstall: build_all $(srcdir)/Modules/xxmodule.c
- @for i in $(SCRIPTDIR) $(LIBDEST); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- @for d in $(LIBSUBDIRS); \
- do \
- a=$(srcdir)/Lib/$$d; \
- if test ! -d $$a; then continue; else true; fi; \
- b=$(LIBDEST)/$$d; \
- if test ! -d $(DESTDIR)$$b; then \
- echo "Creating directory $$b"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$b; \
- else true; \
- fi; \
- done
- @for i in $(srcdir)/Lib/*.py; \
- do \
- if test -x $$i; then \
- $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
- echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \
- else \
- $(INSTALL_DATA) $$i $(DESTDIR)$(LIBDEST); \
- echo $(INSTALL_DATA) $$i $(LIBDEST); \
- fi; \
- done
- @for d in $(LIBSUBDIRS); \
- do \
- a=$(srcdir)/Lib/$$d; \
- if test ! -d $$a; then continue; else true; fi; \
- if test `ls $$a | wc -l` -lt 1; then continue; fi; \
- b=$(LIBDEST)/$$d; \
- for i in $$a/*; \
- do \
- case $$i in \
- *CVS) ;; \
- *.py[co]) ;; \
- *.orig) ;; \
- *~) ;; \
- *) \
- if test -d $$i; then continue; fi; \
- if test -x $$i; then \
- echo $(INSTALL_SCRIPT) $$i $$b; \
- $(INSTALL_SCRIPT) $$i $(DESTDIR)$$b; \
- else \
- echo $(INSTALL_DATA) $$i $$b; \
- $(INSTALL_DATA) $$i $(DESTDIR)$$b; \
- fi;; \
- esac; \
- done; \
- done
- $(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py \
- $(DESTDIR)$(LIBDEST); \
- $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
- if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
- $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
- $(DESTDIR)$(LIBDEST)/distutils/tests ; \
- fi
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- $(DESTDIR)$(LIBDEST)
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- $(DESTDIR)$(LIBDEST)
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST) -f \
- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
- $(DESTDIR)$(LIBDEST)
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
- -d $(LIBDEST)/site-packages -f \
- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
-
-python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh
- # Substitution happens here, as the completely-expanded BINDIR
- # is not available in configure
- sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py
- # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR}
- LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config
- # On Darwin, always use the python version of the script, the shell
- # version doesn't use the compiler customizations that are provided
- # in python (_osx_support.py).
- if test `uname -s` = Darwin; then \
- cp python-config.py python-config; \
- fi
-
-
-# Install the include files
-INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
-inclinstall:
- @for i in $(INCLDIRSTOMAKE); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- @for i in $(srcdir)/Include/*.h; \
- do \
- echo $(INSTALL_DATA) $$i $(INCLUDEPY); \
- $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \
- done
- $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
-
-# Install the library and miscellaneous stuff needed for extending/embedding
-# This goes into $(exec_prefix)
-LIBPL= $(prefix)/lib/python3.6/config-$(VERSION)$(ABIFLAGS)-darwin
-
-# pkgconfig directory
-LIBPC= $(LIBDIR)/pkgconfig
-
-libainstall: all python-config
- @for i in $(LIBDIR) $(LIBPL) $(LIBPC); \
- do \
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- @if test -d $(LIBRARY); then :; else \
- if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
- if test "$(SHLIB_SUFFIX)" = .dll; then \
- $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
- else \
- $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
- $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
- fi; \
- else \
- echo Skip install of $(LIBRARY) - use make frameworkinstall; \
- fi; \
- fi
- $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c
- $(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o
- $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
- $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
- $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
- $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
- $(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config
- $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
- $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
- $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
- $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py
- $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config
- @if [ -s Modules/python.exp -a \
- "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
- echo; echo "Installing support files for building shared extension modules on AIX:"; \
- $(INSTALL_DATA) Modules/python.exp \
- $(DESTDIR)$(LIBPL)/python.exp; \
- echo; echo "$(LIBPL)/python.exp"; \
- $(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix \
- $(DESTDIR)$(LIBPL)/makexp_aix; \
- echo "$(LIBPL)/makexp_aix"; \
- $(INSTALL_SCRIPT) Modules/ld_so_aix \
- $(DESTDIR)$(LIBPL)/ld_so_aix; \
- echo "$(LIBPL)/ld_so_aix"; \
- echo; echo "See Misc/AIX-NOTES for details."; \
- else true; \
- fi
-
-# Install the dynamically loadable modules
-# This goes into $(exec_prefix)
-sharedinstall: sharedmods
- $(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
- --prefix=$(prefix) \
- --install-scripts=$(BINDIR) \
- --install-platlib=$(DESTSHARED) \
- --root=$(DESTDIR)/
- -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py
- -rm -r $(DESTDIR)$(DESTSHARED)/__pycache__
-
-# Here are a couple of targets for MacOSX again, to install a full
-# framework-based Python. frameworkinstall installs everything, the
-# subtargets install specific parts. Much of the actual work is offloaded to
-# the Makefile in Mac
-#
-#
-# This target is here for backward compatibility, previous versions of Python
-# hadn't integrated framework installation in the normal install process.
-frameworkinstall: install
-
-# On install, we re-make the framework
-# structure in the install location, /Library/Frameworks/ or the argument to
-# --enable-framework. If --enable-framework has been specified then we have
-# automatically set prefix to the location deep down in the framework, so we
-# only have to cater for the structural bits of the framework.
-
-frameworkinstallframework: frameworkinstallstructure install frameworkinstallmaclib
-
-frameworkinstallstructure: $(LDLIBRARY)
- @if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
- echo Not configured with --enable-framework; \
- exit 1; \
- else true; \
- fi
- @for i in $(prefix)/Resources/English.lproj $(prefix)/lib; do\
- if test ! -d $(DESTDIR)$$i; then \
- echo "Creating directory $(DESTDIR)$$i"; \
- $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
- else true; \
- fi; \
- done
- $(LN) -fsn include/python$(LDVERSION) $(DESTDIR)$(prefix)/Headers
- sed 's/%VERSION%/'"`$(RUNSHARED) ./$(BUILDPYTHON) -c 'import platform; print(platform.python_version())'`"'/g' < $(RESSRCDIR)/Info.plist > $(DESTDIR)$(prefix)/Resources/Info.plist
- $(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current
- $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/$(PYTHONFRAMEWORK)
- $(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers
- $(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources
- $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY)
-
-# This installs Mac/Lib into the framework
-# Install a number of symlinks to keep software that expects a normal unix
-# install (which includes python-config) happy.
-frameworkinstallmaclib:
- $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(LDVERSION).a"
- $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(LDVERSION).dylib"
- $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(VERSION).a"
- $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(VERSION).dylib"
- $(LN) -fs "../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/libpython$(LDVERSION).dylib"
- $(LN) -fs "../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/libpython$(VERSION).dylib"
-
-# This installs the IDE, the Launcher and other apps into /Applications
-frameworkinstallapps:
- cd Mac && $(MAKE) installapps DESTDIR="$(DESTDIR)"
-
-# Build the bootstrap executable that will spawn the interpreter inside
-# an app bundle within the framework. This allows the interpreter to
-# run OS X GUI APIs.
-frameworkpythonw:
- cd Mac && $(MAKE) pythonw
-
-# This installs the python* and other bin symlinks in $prefix/bin or in
-# a bin directory relative to the framework root
-frameworkinstallunixtools:
- cd Mac && $(MAKE) installunixtools DESTDIR="$(DESTDIR)"
-
-frameworkaltinstallunixtools:
- cd Mac && $(MAKE) altinstallunixtools DESTDIR="$(DESTDIR)"
-
-# This installs the Tools into the applications directory.
-# It is not part of a normal frameworkinstall
-frameworkinstallextras:
- cd Mac && $(MAKE) installextras DESTDIR="$(DESTDIR)"
-
-# This installs a few of the useful scripts in Tools/scripts
-scriptsinstall:
- SRCDIR=$(srcdir) $(RUNSHARED) \
- $(PYTHON_FOR_BUILD) $(srcdir)/Tools/scripts/setup.py install \
- --prefix=$(prefix) \
- --install-scripts=$(BINDIR) \
- --root=$(DESTDIR)/
-
-# Build the toplevel Makefile
-Makefile.pre: $(srcdir)/Makefile.pre.in config.status
- CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
- $(MAKE) -f Makefile.pre Makefile
-
-# Run the configure script.
-config.status: $(srcdir)/configure
- $(SHELL) $(srcdir)/configure $(CONFIG_ARGS)
-
-.PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre
-
-# Some make's put the object file in the current directory
-.c.o:
- $(CC) -c $(PY_CORE_CFLAGS) -o $@ $<
-
-# bpo-30104: dtoa.c uses union to cast double to unsigned long[2]. clang 4.0
-# with -O2 or higher and strict aliasing miscompiles the ratio() function
-# causing rounding issues. Compile dtoa.c using -fno-strict-aliasing on clang.
-# https://bugs.llvm.org//show_bug.cgi?id=31928
-Python/dtoa.o: Python/dtoa.c
- $(CC) -c $(PY_CORE_CFLAGS) $(CFLAGS_ALIASING) -o $@ $<
-
-# Run reindent on the library
-reindent:
- ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib
-
-# Rerun configure with the same options as it was run last time,
-# provided the config.status script exists
-recheck:
- $(SHELL) config.status --recheck
- $(SHELL) config.status
-
-# Regenerate configure and pyconfig.h.in
-.PHONY: autoconf
-autoconf:
- # Regenerate the configure script from configure.ac using autoconf
- (cd $(srcdir); autoconf -Wall)
- # Regenerate pyconfig.h.in from configure.ac using autoheader
- (cd $(srcdir); autoheader -Wall)
-
-# Create a tags file for vi
-tags::
- cd $(srcdir); \
- ctags -w Include/*.h; \
- for i in $(SRCDIRS); do ctags -w -a $$i/*.[ch]; \
- done; \
- LC_ALL=C sort -o tags tags
-
-# Create a tags file for GNU Emacs
-TAGS::
- cd $(srcdir); \
- etags Include/*.h; \
- for i in $(SRCDIRS); do etags -a $$i/*.[ch]; done
-
-# Sanitation targets -- clean leaves libraries, executables and tags
-# files, which clobber removes as well
-pycremoval:
- -find $(srcdir) -depth -name '__pycache__' -exec rm -rf {} ';'
- -find $(srcdir) -name '*.py[co]' -exec rm -f {} ';'
-
-rmtestturds:
- -rm -f *BAD *GOOD *SKIPPED
- -rm -rf OUT
- -rm -f *.TXT
- -rm -f *.txt
- -rm -f gb-18030-2000.xml
-
-docclean:
- -rm -rf Doc/build
- -rm -rf Doc/tools/sphinx Doc/tools/pygments Doc/tools/docutils
-
-clean: pycremoval
- find . -name '*.[oa]' -exec rm -f {} ';'
- find . -name '*.s[ol]' -exec rm -f {} ';'
- find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
- find build -name 'fficonfig.h' -exec rm -f {} ';' || true
- find build -name '*.py' -exec rm -f {} ';' || true
- find build -name '*.py[co]' -exec rm -f {} ';' || true
- -rm -f pybuilddir.txt
- -rm -f Lib/lib2to3/*Grammar*.pickle
- -rm -f Programs/_testembed Programs/_freeze_importlib
- -find build -type f -a ! -name '*.gc??' -exec rm -f {} ';'
- -rm -f Include/pydtrace_probes.h
-
-profile-removal:
- find . -name '*.gc??' -exec rm -f {} ';'
- find . -name '*.profclang?' -exec rm -f {} ';'
- find . -name '*.dyn' -exec rm -f {} ';'
- rm -f $(COVERAGE_INFO)
- rm -rf $(COVERAGE_REPORT)
-
-clobber: clean profile-removal
- -rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
- tags TAGS \
- config.cache config.log pyconfig.h Modules/config.c
- -rm -rf build platform
- -rm -rf $(PYTHONFRAMEWORKDIR)
- -rm -f python-config.py python-config
-
-# Make things extra clean, before making a distribution:
-# remove all generated files, even Makefile[.pre]
-# Keep configure and Python-ast.[ch], it's possible they can't be generated
-distclean: clobber
- for file in $(srcdir)/Lib/test/data/* ; do \
- if test "$$file" != "$(srcdir)/Lib/test/data/README"; then rm "$$file"; fi; \
- done
- -rm -f core Makefile Makefile.pre config.status \
- Modules/Setup Modules/Setup.local Modules/Setup.config \
- Modules/ld_so_aix Modules/python.exp Misc/python.pc \
- Misc/python-config.sh
- -rm -f python*-gdb.py
- # Issue #28258: set LC_ALL to avoid issues with Estonian locale.
- # Expansion is performed here by shell (spawned by make) itself before
- # arguments are passed to find. So LC_ALL=C must be set as a separate
- # command.
- LC_ALL=C; find $(srcdir)/[a-zA-Z]* '(' -name '*.fdc' -o -name '*~' \
- -o -name '[@,#]*' -o -name '*.old' \
- -o -name '*.orig' -o -name '*.rej' \
- -o -name '*.bak' ')' \
- -exec rm -f {} ';'
-
-# Check for smelly exported symbols (not starting with Py/_Py)
-smelly: all
- nm -p $(LIBRARY) | \
- sed -n "/ [TDB] /s/.* //p" | grep -v "^_*Py" | sort -u; \
-
-# Find files with funny names
-funny:
- find $(SUBDIRS) $(SUBDIRSTOO) \
- -type d \
- -o -name '*.[chs]' \
- -o -name '*.py' \
- -o -name '*.pyw' \
- -o -name '*.dat' \
- -o -name '*.el' \
- -o -name '*.fd' \
- -o -name '*.in' \
- -o -name '*.gif' \
- -o -name '*.txt' \
- -o -name '*.xml' \
- -o -name '*.xbm' \
- -o -name '*.xpm' \
- -o -name '*.uue' \
- -o -name '*.decTest' \
- -o -name '*.tmCommand' \
- -o -name '*.tmSnippet' \
- -o -name 'Setup' \
- -o -name 'Setup.*' \
- -o -name README \
- -o -name NEWS \
- -o -name HISTORY \
- -o -name Makefile \
- -o -name ChangeLog \
- -o -name .hgignore \
- -o -name .bzrignore \
- -o -name MANIFEST \
- -o -print
-
-# Perform some verification checks on any modified files.
-patchcheck: all
- $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py
-
-# Dependencies
-
-Python/thread.o: $(srcdir)/Python/thread_foobar.h $(srcdir)/Python/thread_nt.h $(srcdir)/Python/thread_pthread.h
-
-# Declare targets that aren't real files
-.PHONY: all build_all sharedmods oldsharedmods test quicktest
-.PHONY: install altinstall oldsharedinstall bininstall altbininstall
-.PHONY: maninstall libinstall inclinstall libainstall sharedinstall
-.PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure
-.PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
-.PHONY: frameworkaltinstallunixtools recheck clean clobber distclean
-.PHONY: smelly funny patchcheck touch altmaninstall commoninstall
-.PHONY: gdbhooks
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-# Local Variables:
-# mode: makefile
-# End:
-
-# Rules appended by makedepend
-
-Modules/_threadmodule.o: $(srcdir)/Modules/_threadmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_threadmodule.c -o Modules/_threadmodule.o
-Modules/_thread$(EXT_SUFFIX): Modules/_threadmodule.o; $(BLDSHARED) Modules/_threadmodule.o -o Modules/_thread$(EXT_SUFFIX)
-Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/posixmodule.c -o Modules/posixmodule.o
-Modules/posix$(EXT_SUFFIX): Modules/posixmodule.o; $(BLDSHARED) Modules/posixmodule.o -o Modules/posix$(EXT_SUFFIX)
-Modules/errnomodule.o: $(srcdir)/Modules/errnomodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/errnomodule.c -o Modules/errnomodule.o
-Modules/errno$(EXT_SUFFIX): Modules/errnomodule.o; $(BLDSHARED) Modules/errnomodule.o -o Modules/errno$(EXT_SUFFIX)
-Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/pwdmodule.c -o Modules/pwdmodule.o
-Modules/pwd$(EXT_SUFFIX): Modules/pwdmodule.o; $(BLDSHARED) Modules/pwdmodule.o -o Modules/pwd$(EXT_SUFFIX)
-Modules/_sre.o: $(srcdir)/Modules/_sre.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_sre.c -o Modules/_sre.o
-Modules/_sre$(EXT_SUFFIX): Modules/_sre.o; $(BLDSHARED) Modules/_sre.o -o Modules/_sre$(EXT_SUFFIX)
-Modules/_codecsmodule.o: $(srcdir)/Modules/_codecsmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_codecsmodule.c -o Modules/_codecsmodule.o
-Modules/_codecs$(EXT_SUFFIX): Modules/_codecsmodule.o; $(BLDSHARED) Modules/_codecsmodule.o -o Modules/_codecs$(EXT_SUFFIX)
-Modules/_weakref.o: $(srcdir)/Modules/_weakref.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_weakref.c -o Modules/_weakref.o
-Modules/_weakref$(EXT_SUFFIX): Modules/_weakref.o; $(BLDSHARED) Modules/_weakref.o -o Modules/_weakref$(EXT_SUFFIX)
-Modules/_functoolsmodule.o: $(srcdir)/Modules/_functoolsmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_functoolsmodule.c -o Modules/_functoolsmodule.o
-Modules/_functools$(EXT_SUFFIX): Modules/_functoolsmodule.o; $(BLDSHARED) Modules/_functoolsmodule.o -o Modules/_functools$(EXT_SUFFIX)
-Modules/_operator.o: $(srcdir)/Modules/_operator.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_operator.c -o Modules/_operator.o
-Modules/_operator$(EXT_SUFFIX): Modules/_operator.o; $(BLDSHARED) Modules/_operator.o -o Modules/_operator$(EXT_SUFFIX)
-Modules/_collectionsmodule.o: $(srcdir)/Modules/_collectionsmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_collectionsmodule.c -o Modules/_collectionsmodule.o
-Modules/_collections$(EXT_SUFFIX): Modules/_collectionsmodule.o; $(BLDSHARED) Modules/_collectionsmodule.o -o Modules/_collections$(EXT_SUFFIX)
-Modules/itertoolsmodule.o: $(srcdir)/Modules/itertoolsmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/itertoolsmodule.c -o Modules/itertoolsmodule.o
-Modules/itertools$(EXT_SUFFIX): Modules/itertoolsmodule.o; $(BLDSHARED) Modules/itertoolsmodule.o -o Modules/itertools$(EXT_SUFFIX)
-Modules/atexitmodule.o: $(srcdir)/Modules/atexitmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/atexitmodule.c -o Modules/atexitmodule.o
-Modules/atexit$(EXT_SUFFIX): Modules/atexitmodule.o; $(BLDSHARED) Modules/atexitmodule.o -o Modules/atexit$(EXT_SUFFIX)
-Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/signalmodule.c -o Modules/signalmodule.o
-Modules/_signal$(EXT_SUFFIX): Modules/signalmodule.o; $(BLDSHARED) Modules/signalmodule.o -o Modules/_signal$(EXT_SUFFIX)
-Modules/_stat.o: $(srcdir)/Modules/_stat.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_stat.c -o Modules/_stat.o
-Modules/_stat$(EXT_SUFFIX): Modules/_stat.o; $(BLDSHARED) Modules/_stat.o -o Modules/_stat$(EXT_SUFFIX)
-Modules/timemodule.o: $(srcdir)/Modules/timemodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/timemodule.c -o Modules/timemodule.o
-Modules/time$(EXT_SUFFIX): Modules/timemodule.o; $(BLDSHARED) Modules/timemodule.o -o Modules/time$(EXT_SUFFIX)
-Modules/_localemodule.o: $(srcdir)/Modules/_localemodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_localemodule.c -o Modules/_localemodule.o
-Modules/_locale$(EXT_SUFFIX): Modules/_localemodule.o; $(BLDSHARED) Modules/_localemodule.o -o Modules/_locale$(EXT_SUFFIX)
-Modules/_iomodule.o: $(srcdir)/Modules/_io/_iomodule.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/_iomodule.c -o Modules/_iomodule.o
-Modules/iobase.o: $(srcdir)/Modules/_io/iobase.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/iobase.c -o Modules/iobase.o
-Modules/fileio.o: $(srcdir)/Modules/_io/fileio.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/fileio.c -o Modules/fileio.o
-Modules/bytesio.o: $(srcdir)/Modules/_io/bytesio.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/bytesio.c -o Modules/bytesio.o
-Modules/bufferedio.o: $(srcdir)/Modules/_io/bufferedio.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/bufferedio.c -o Modules/bufferedio.o
-Modules/textio.o: $(srcdir)/Modules/_io/textio.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/textio.c -o Modules/textio.o
-Modules/stringio.o: $(srcdir)/Modules/_io/stringio.c; $(CC) $(PY_CORE_CFLAGS) -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/stringio.c -o Modules/stringio.o
-Modules/_io$(EXT_SUFFIX): Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o; $(BLDSHARED) Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o -o Modules/_io$(EXT_SUFFIX)
-Modules/zipimport.o: $(srcdir)/Modules/zipimport.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/zipimport.c -o Modules/zipimport.o
-Modules/zipimport$(EXT_SUFFIX): Modules/zipimport.o; $(BLDSHARED) Modules/zipimport.o -o Modules/zipimport$(EXT_SUFFIX)
-Modules/faulthandler.o: $(srcdir)/Modules/faulthandler.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/faulthandler.c -o Modules/faulthandler.o
-Modules/faulthandler$(EXT_SUFFIX): Modules/faulthandler.o; $(BLDSHARED) Modules/faulthandler.o -o Modules/faulthandler$(EXT_SUFFIX)
-Modules/_tracemalloc.o: $(srcdir)/Modules/_tracemalloc.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/_tracemalloc.c -o Modules/_tracemalloc.o
-Modules/hashtable.o: $(srcdir)/Modules/hashtable.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/hashtable.c -o Modules/hashtable.o
-Modules/_tracemalloc$(EXT_SUFFIX): Modules/_tracemalloc.o Modules/hashtable.o; $(BLDSHARED) Modules/_tracemalloc.o Modules/hashtable.o -o Modules/_tracemalloc$(EXT_SUFFIX)
-Modules/symtablemodule.o: $(srcdir)/Modules/symtablemodule.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/symtablemodule.c -o Modules/symtablemodule.o
-Modules/_symtable$(EXT_SUFFIX): Modules/symtablemodule.o; $(BLDSHARED) Modules/symtablemodule.o -o Modules/_symtable$(EXT_SUFFIX)
-Modules/xxsubtype.o: $(srcdir)/Modules/xxsubtype.c; $(CC) $(PY_CORE_CFLAGS) -c $(srcdir)/Modules/xxsubtype.c -o Modules/xxsubtype.o
-Modules/xxsubtype$(EXT_SUFFIX): Modules/xxsubtype.o; $(BLDSHARED) Modules/xxsubtype.o -o Modules/xxsubtype$(EXT_SUFFIX)
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Setup b/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Setup
deleted file mode 100644
index 735bacb..0000000
--- a/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Setup
+++ /dev/null
@@ -1,397 +0,0 @@
-# -*- makefile -*-
-# The file Setup is used by the makesetup script to construct the files
-# Makefile and config.c, from Makefile.pre and config.c.in,
-# respectively. The file Setup itself is initially copied from
-# Setup.dist; once it exists it will not be overwritten, so you can edit
-# Setup to your heart's content. Note that Makefile.pre is created
-# from Makefile.pre.in by the toplevel configure script.
-
-# (VPATH notes: Setup and Makefile.pre are in the build directory, as
-# are Makefile and config.c; the *.in and *.dist files are in the source
-# directory.)
-
-# Each line in this file describes one or more optional modules.
-# Modules enabled here will not be compiled by the setup.py script,
-# so the file can be used to override setup.py's behavior.
-
-# Lines have the following structure:
-#
-# ... [ ...] [ ...] [ ...]
-#
-# is anything ending in .c (.C, .cc, .c++ are C++ files)
-# is anything starting with -I, -D, -U or -C
-# is anything ending in .a or beginning with -l or -L
-# is anything else but should be a valid Python
-# identifier (letters, digits, underscores, beginning with non-digit)
-#
-# (As the makesetup script changes, it may recognize some other
-# arguments as well, e.g. *.so and *.sl as libraries. See the big
-# case statement in the makesetup script.)
-#
-# Lines can also have the form
-#
-# =
-#
-# which defines a Make variable definition inserted into Makefile.in
-#
-# Finally, if a line contains just the word "*shared*" (without the
-# quotes but with the stars), then the following modules will not be
-# built statically. The build process works like this:
-#
-# 1. Build all modules that are declared as static in Modules/Setup,
-# combine them into libpythonxy.a, combine that into python.
-# 2. Build all modules that are listed as shared in Modules/Setup.
-# 3. Invoke setup.py. That builds all modules that
-# a) are not builtin, and
-# b) are not listed in Modules/Setup, and
-# c) can be build on the target
-#
-# Therefore, modules declared to be shared will not be
-# included in the config.c file, nor in the list of objects to be
-# added to the library archive, and their linker options won't be
-# added to the linker options. Rules to create their .o files and
-# their shared libraries will still be added to the Makefile, and
-# their names will be collected in the Make variable SHAREDMODS. This
-# is used to build modules as shared libraries. (They can be
-# installed using "make sharedinstall", which is implied by the
-# toplevel "make install" target.) (For compatibility,
-# *noconfig* has the same effect as *shared*.)
-#
-# In addition, *static* explicitly declares the following modules to
-# be static. Lines containing "*static*" and "*shared*" may thus
-# alternate throughout this file.
-
-# NOTE: As a standard policy, as many modules as can be supported by a
-# platform should be present. The distribution comes with all modules
-# enabled that are supported by most platforms and don't require you
-# to ftp sources from elsewhere.
-
-
-# Some special rules to define PYTHONPATH.
-# Edit the definitions below to indicate which options you are using.
-# Don't add any whitespace or comments!
-
-# Directories where library files get installed.
-# DESTLIB is for Python modules; MACHDESTLIB for shared libraries.
-DESTLIB=$(LIBDEST)
-MACHDESTLIB=$(BINLIBDEST)
-
-# NOTE: all the paths are now relative to the prefix that is computed
-# at run time!
-
-# Standard path -- don't edit.
-# No leading colon since this is the first entry.
-# Empty since this is now just the runtime prefix.
-DESTPATH=
-
-# Site specific path components -- should begin with : if non-empty
-SITEPATH=
-
-# Standard path components for test modules
-TESTPATH=
-
-# Path components for machine- or system-dependent modules and shared libraries
-MACHDEPPATH=:$(PLATDIR)
-EXTRAMACHDEPPATH=
-
-COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH)
-PYTHONPATH=$(COREPYTHONPATH)
-
-
-# The modules listed here can't be built as shared libraries for
-# various reasons; therefore they are listed here instead of in the
-# normal order.
-
-# This only contains the minimal set of modules required to run the
-# setup.py script in the root of the Python source tree.
-
-posix posixmodule.c # posix (UNIX) system calls
-errno errnomodule.c # posix (UNIX) errno values
-pwd pwdmodule.c # this is needed to find out the user's home dir
- # if $HOME is not set
-_sre _sre.c # Fredrik Lundh's new regular expressions
-_codecs _codecsmodule.c # access to the builtin codecs and codec registry
-_weakref _weakref.c # weak references
-_functools _functoolsmodule.c # Tools for working with functions and callable objects
-_operator _operator.c # operator.add() and similar goodies
-_collections _collectionsmodule.c # Container types
-itertools itertoolsmodule.c # Functions creating iterators for efficient looping
-atexit atexitmodule.c # Register functions to be run at interpreter-shutdown
-_signal signalmodule.c
-_stat _stat.c # stat.h interface
-time timemodule.c # -lm # time operations and variables
-
-# access to ISO C locale support
-_locale _localemodule.c # -lintl
-
-# Standard I/O baseline
-_io -I$(srcdir)/Modules/_io _io/_iomodule.c _io/iobase.c _io/fileio.c _io/bytesio.c _io/bufferedio.c _io/textio.c _io/stringio.c
-
-# The zipimport module is always imported at startup. Having it as a
-# builtin module avoids some bootstrapping problems and reduces overhead.
-zipimport zipimport.c
-
-# faulthandler module
-faulthandler faulthandler.c
-
-# debug tool to trace memory blocks allocated by Python
-_tracemalloc _tracemalloc.c hashtable.c
-
-# The rest of the modules listed in this file are all commented out by
-# default. Usually they can be detected and built as dynamically
-# loaded modules by the new setup.py script added in Python 2.1. If
-# you're on a platform that doesn't support dynamic loading, want to
-# compile modules statically into the Python binary, or need to
-# specify some odd set of compiler switches, you can uncomment the
-# appropriate lines below.
-
-# ======================================================================
-
-# The Python symtable module depends on .h files that setup.py doesn't track
-_symtable symtablemodule.c
-
-# Uncommenting the following line tells makesetup that all following
-# modules are to be built as shared libraries (see above for more
-# detail; also note that *static* reverses this effect):
-
-#*shared*
-
-# GNU readline. Unlike previous Python incarnations, GNU readline is
-# now incorporated in an optional module, configured in the Setup file
-# instead of by a configure script switch. You may have to insert a
-# -L option pointing to the directory where libreadline.* lives,
-# and you may have to change -ltermcap to -ltermlib or perhaps remove
-# it, depending on your system -- see the GNU readline instructions.
-# It's okay for this to be a shared library, too.
-
-#readline readline.c -lreadline -ltermcap
-
-
-# Modules that should always be present (non UNIX dependent):
-
-#array arraymodule.c # array objects
-#cmath cmathmodule.c _math.c # -lm # complex math library functions
-#math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
-#_struct _struct.c # binary structure packing/unpacking
-#_weakref _weakref.c # basic weak reference support
-#_testcapi _testcapimodule.c # Python C API test module
-#_random _randommodule.c # Random number generator
-#_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
-#_pickle _pickle.c # pickle accelerator
-#_datetime _datetimemodule.c # datetime accelerator
-#_bisect _bisectmodule.c # Bisection algorithms
-#_heapq _heapqmodule.c # Heap queue algorithm
-#_asyncio _asynciomodule.c # Fast asyncio Future
-
-#unicodedata unicodedata.c # static Unicode character database
-
-
-# Modules with some UNIX dependencies -- on by default:
-# (If you have a really backward UNIX, select and socket may not be
-# supported...)
-
-#fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
-#spwd spwdmodule.c # spwd(3)
-#grp grpmodule.c # grp(3)
-#select selectmodule.c # select(2); not on ancient System V
-
-# Memory-mapped files (also works on Win32).
-#mmap mmapmodule.c
-
-# CSV file helper
-#_csv _csv.c
-
-# Socket module helper for socket(2)
-#_socket socketmodule.c
-
-# Socket module helper for SSL support; you must comment out the other
-# socket line above, and possibly edit the SSL variable:
-#SSL=/usr/local/ssl
-#_ssl _ssl.c \
-# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-# -L$(SSL)/lib -lssl -lcrypto
-
-# The crypt module is now disabled by default because it breaks builds
-# on many systems (where -lcrypt is needed), e.g. Linux (I believe).
-#
-# First, look at Setup.config; configure may have set this for you.
-
-#_crypt _cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems
-
-
-# Some more UNIX dependent modules -- off by default, since these
-# are not supported by all UNIX systems:
-
-#nis nismodule.c -lnsl # Sun yellow pages -- not everywhere
-#termios termios.c # Steen Lumholt's termios module
-#resource resource.c # Jeremy Hylton's rlimit interface
-
-#_posixsubprocess _posixsubprocess.c # POSIX subprocess module helper
-
-# Multimedia modules -- off by default.
-# These don't work for 64-bit platforms!!!
-# #993173 says audioop works on 64-bit platforms, though.
-# These represent audio samples or images as strings:
-
-#audioop audioop.c # Operations on audio samples
-
-
-# Note that the _md5 and _sha modules are normally only built if the
-# system does not have the OpenSSL libs containing an optimized version.
-
-# The _md5 module implements the RSA Data Security, Inc. MD5
-# Message-Digest Algorithm, described in RFC 1321.
-
-#_md5 md5module.c
-
-
-# The _sha module implements the SHA checksum algorithms.
-# (NIST's Secure Hash Algorithms.)
-#_sha1 sha1module.c
-#_sha256 sha256module.c
-#_sha512 sha512module.c
-#_sha3 _sha3/sha3module.c
-
-# _blake module
-#_blake2 _blake2/blake2module.c _blake2/blake2b_impl.c _blake2/blake2s_impl.c
-
-# The _tkinter module.
-#
-# The command for _tkinter is long and site specific. Please
-# uncomment and/or edit those parts as indicated. If you don't have a
-# specific extension (e.g. Tix or BLT), leave the corresponding line
-# commented out. (Leave the trailing backslashes in! If you
-# experience strange errors, you may want to join all uncommented
-# lines and remove the backslashes -- the backslash interpretation is
-# done by the shell's "read" command and it may not be implemented on
-# every system.
-
-# *** Always uncomment this (leave the leading underscore in!):
-# _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
-# *** Uncomment and edit to reflect where your Tcl/Tk libraries are:
-# -L/usr/local/lib \
-# *** Uncomment and edit to reflect where your Tcl/Tk headers are:
-# -I/usr/local/include \
-# *** Uncomment and edit to reflect where your X11 header files are:
-# -I/usr/X11R6/include \
-# *** Or uncomment this for Solaris:
-# -I/usr/openwin/include \
-# *** Uncomment and edit for Tix extension only:
-# -DWITH_TIX -ltix8.1.8.2 \
-# *** Uncomment and edit for BLT extension only:
-# -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \
-# *** Uncomment and edit for PIL (TkImaging) extension only:
-# (See http://www.pythonware.com/products/pil/ for more info)
-# -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \
-# *** Uncomment and edit for TOGL extension only:
-# -DWITH_TOGL togl.c \
-# *** Uncomment and edit to reflect your Tcl/Tk versions:
-# -ltk8.2 -ltcl8.2 \
-# *** Uncomment and edit to reflect where your X11 libraries are:
-# -L/usr/X11R6/lib \
-# *** Or uncomment this for Solaris:
-# -L/usr/openwin/lib \
-# *** Uncomment these for TOGL extension only:
-# -lGL -lGLU -lXext -lXmu \
-# *** Uncomment for AIX:
-# -lld \
-# *** Always uncomment this; X11 libraries to link with:
-# -lX11
-
-# Lance Ellinghaus's syslog module
-#syslog syslogmodule.c # syslog daemon interface
-
-
-# Curses support, requiring the System V version of curses, often
-# provided by the ncurses library. e.g. on Linux, link with -lncurses
-# instead of -lcurses).
-#
-# First, look at Setup.config; configure may have set this for you.
-
-#_curses _cursesmodule.c -lcurses -ltermcap
-# Wrapper for the panel library that's part of ncurses and SYSV curses.
-#_curses_panel _curses_panel.c -lpanel -lncurses
-
-
-# Modules that provide persistent dictionary-like semantics. You will
-# probably want to arrange for at least one of them to be available on
-# your machine, though none are defined by default because of library
-# dependencies. The Python module dbm/__init__.py provides an
-# implementation independent wrapper for these; dbm/dumb.py provides
-# similar functionality (but slower of course) implemented in Python.
-
-# The standard Unix dbm module has been moved to Setup.config so that
-# it will be compiled as a shared library by default. Compiling it as
-# a built-in module causes conflicts with the pybsddb3 module since it
-# creates a static dependency on an out-of-date version of db.so.
-#
-# First, look at Setup.config; configure may have set this for you.
-
-#_dbm _dbmmodule.c # dbm(3) may require -lndbm or similar
-
-# Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm:
-#
-# First, look at Setup.config; configure may have set this for you.
-
-#_gdbm _gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm
-
-
-# Helper module for various ascii-encoders
-#binascii binascii.c
-
-# Fred Drake's interface to the Python parser
-#parser parsermodule.c
-
-
-# Lee Busby's SIGFPE modules.
-# The library to link fpectl with is platform specific.
-# Choose *one* of the options below for fpectl:
-
-# For SGI IRIX (tested on 5.3):
-#fpectl fpectlmodule.c -lfpe
-
-# For Solaris with SunPro compiler (tested on Solaris 2.5 with SunPro C 4.2):
-# (Without the compiler you don't have -lsunmath.)
-#fpectl fpectlmodule.c -R/opt/SUNWspro/lib -lsunmath -lm
-
-# For other systems: see instructions in fpectlmodule.c.
-#fpectl fpectlmodule.c ...
-
-# Test module for fpectl. No extra libraries needed.
-#fpetest fpetestmodule.c
-
-# Andrew Kuchling's zlib module.
-# This require zlib 1.1.3 (or later).
-# See http://www.gzip.org/zlib/
-#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
-
-# Interface to the Expat XML parser
-#
-# Expat was written by James Clark and is now maintained by a group of
-# developers on SourceForge; see www.libexpat.org for more
-# information. The pyexpat module was written by Paul Prescod after a
-# prototype by Jack Jansen. Source of Expat 1.95.2 is included in
-# Modules/expat/. Usage of a system shared libexpat.so/expat.dll is
-# not advised.
-#
-# More information on Expat can be found at www.libexpat.org.
-#
-#pyexpat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI
-
-# Hye-Shik Chang's CJKCodecs
-
-# multibytecodec is required for all the other CJK codec modules
-#_multibytecodec cjkcodecs/multibytecodec.c
-
-#_codecs_cn cjkcodecs/_codecs_cn.c
-#_codecs_hk cjkcodecs/_codecs_hk.c
-#_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
-#_codecs_jp cjkcodecs/_codecs_jp.c
-#_codecs_kr cjkcodecs/_codecs_kr.c
-#_codecs_tw cjkcodecs/_codecs_tw.c
-
-# Example -- included for reference only:
-# xx xxmodule.c
-
-# Another example -- the 'xxsubtype' module shows C-level subtyping in action
-xxsubtype xxsubtype.c
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Setup.config b/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Setup.config
deleted file mode 100644
index 4057e5f..0000000
--- a/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Setup.config
+++ /dev/null
@@ -1,10 +0,0 @@
-# This file is transmogrified into Setup.config by config.status.
-
-# The purpose of this file is to conditionally enable certain modules
-# based on configure-time options.
-
-# Threading
-_thread _threadmodule.c
-
-# The rest of the modules previously listed in this file are built
-# by the setup.py script in Python 2.1 and later.
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Setup.local b/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Setup.local
deleted file mode 100644
index ca2983e..0000000
--- a/app/dist/frontend.app/Contents/Resources/lib/python3.6/config-3.6m-darwin/Setup.local
+++ /dev/null
@@ -1 +0,0 @@
-# Edit this file for local setup changes
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_bisect.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_bisect.so
deleted file mode 100644
index 5aa39bb..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_bisect.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_blake2.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_blake2.so
deleted file mode 100644
index be28e80..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_blake2.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_bz2.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_bz2.so
deleted file mode 100644
index 590b386..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_bz2.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_cn.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_cn.so
deleted file mode 100644
index 5b42c53..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_cn.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_hk.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_hk.so
deleted file mode 100644
index b494e14..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_hk.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_iso2022.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_iso2022.so
deleted file mode 100644
index 73a06a1..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_iso2022.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_jp.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_jp.so
deleted file mode 100644
index da59934..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_jp.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_kr.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_kr.so
deleted file mode 100644
index c09c1a3..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_kr.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_tw.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_tw.so
deleted file mode 100644
index b971a44..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_codecs_tw.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_ctypes.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_ctypes.so
deleted file mode 100644
index 0dc0c70..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_ctypes.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_datetime.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_datetime.so
deleted file mode 100644
index 0901c3a..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_datetime.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_decimal.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_decimal.so
deleted file mode 100644
index 4df0297..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_decimal.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_hashlib.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_hashlib.so
deleted file mode 100644
index 6025765..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_hashlib.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_heapq.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_heapq.so
deleted file mode 100644
index 9a39de2..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_heapq.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_lzma.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_lzma.so
deleted file mode 100644
index 00b2b0d..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_lzma.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_md5.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_md5.so
deleted file mode 100644
index 0ebe5ae..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_md5.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_multibytecodec.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_multibytecodec.so
deleted file mode 100644
index b163cd0..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_multibytecodec.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_multiprocessing.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_multiprocessing.so
deleted file mode 100644
index 9eabc9a..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_multiprocessing.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_opcode.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_opcode.so
deleted file mode 100644
index 888300e..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_opcode.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_pickle.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_pickle.so
deleted file mode 100644
index f7e53ca..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_pickle.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_posixsubprocess.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_posixsubprocess.so
deleted file mode 100644
index c0dac3b..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_posixsubprocess.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_random.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_random.so
deleted file mode 100644
index fcc3f31..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_random.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha1.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha1.so
deleted file mode 100644
index c6ffecf..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha1.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha256.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha256.so
deleted file mode 100644
index fb34c5c..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha256.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha3.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha3.so
deleted file mode 100644
index df985fa..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha3.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha512.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha512.so
deleted file mode 100644
index e2583d7..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sha512.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_socket.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_socket.so
deleted file mode 100644
index 3d41220..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_socket.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sqlite3.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sqlite3.so
deleted file mode 100644
index 5bac725..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_sqlite3.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_ssl.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_ssl.so
deleted file mode 100644
index 63f0f33..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_ssl.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_struct.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_struct.so
deleted file mode 100644
index 4d064ca..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_struct.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_tkinter.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_tkinter.so
deleted file mode 100644
index a3740a5..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/_tkinter.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/array.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/array.so
deleted file mode 100644
index 1251f8d..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/array.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/binascii.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/binascii.so
deleted file mode 100644
index 20a2b4f..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/binascii.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/grp.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/grp.so
deleted file mode 100644
index 6c3c6e7..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/grp.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/math.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/math.so
deleted file mode 100644
index e64be97..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/math.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/mmap.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/mmap.so
deleted file mode 100644
index dcc8961..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/mmap.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/pyexpat.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/pyexpat.so
deleted file mode 100644
index 300c748..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/pyexpat.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/resource.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/resource.so
deleted file mode 100644
index c68fb0b..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/resource.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/select.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/select.so
deleted file mode 100644
index 7b7cdf9..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/select.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/unicodedata.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/unicodedata.so
deleted file mode 100644
index e4afe2f..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/unicodedata.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/zlib.so b/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/zlib.so
deleted file mode 100644
index bcbc8e6..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python3.6/lib-dynload/zlib.so and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python3.6/site.pyc b/app/dist/frontend.app/Contents/Resources/lib/python3.6/site.pyc
deleted file mode 120000
index 66cd464..0000000
--- a/app/dist/frontend.app/Contents/Resources/lib/python3.6/site.pyc
+++ /dev/null
@@ -1 +0,0 @@
-../../site.pyc
\ No newline at end of file
diff --git a/app/dist/frontend.app/Contents/Resources/lib/python36.zip b/app/dist/frontend.app/Contents/Resources/lib/python36.zip
deleted file mode 100644
index e52c133..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/lib/python36.zip and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/site.pyc b/app/dist/frontend.app/Contents/Resources/site.pyc
deleted file mode 100644
index 5b4c630..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/site.pyc and /dev/null differ
diff --git a/app/dist/frontend.app/Contents/Resources/zlib.cpython-36m-darwin.so b/app/dist/frontend.app/Contents/Resources/zlib.cpython-36m-darwin.so
deleted file mode 100755
index bcbc8e6..0000000
Binary files a/app/dist/frontend.app/Contents/Resources/zlib.cpython-36m-darwin.so and /dev/null differ
diff --git a/app/frontend.py b/app/frontend.py
index 03fa457..91c1aab 100644
--- a/app/frontend.py
+++ b/app/frontend.py
@@ -1,105 +1,209 @@
-from tkinter import *
-import backend
-
-def get_selected_row(event): #the "event" parameter is needed b/c we've binded this function to the listbox
- try:
- index = list1.curselection()[0]
- global selected_tuple
- selected_tuple = list1.get(index)
- e1.delete(0,END)
- e1.insert(END,selected_tuple[1])
- e2.delete(0, END)
- e2.insert(END,selected_tuple[2])
- e3.delete(0, END)
- e3.insert(END,selected_tuple[3])
- e4.delete(0, END)
- e4.insert(END,selected_tuple[4])
- except IndexError:
- pass #in the case where the listbox is empty, the code will not execute
+"""Graphic user interface (GUI)."""
+# python
+import tkinter as tk
+import tkinter.ttk as ttk
+import typing
-def view_command():
- list1.delete(0, END) # make sure we've cleared all entries in the listbox every time we press the View all button
- for row in backend.view():
- list1.insert(END, row)
-
-def search_command():
- list1.delete(0, END)
- for row in backend.search(title_text.get(), author_text.get(), year_text.get(), ISBN_text.get()):
- list1.insert(END, row)
+# local
+from app import constants
+from app.backend import Backend
-def add_command():
- backend.insert(title_text.get(), author_text.get(), year_text.get(), ISBN_text.get())
- list1.delete(0, END)
- list1.insert(END, (title_text.get(), author_text.get(), year_text.get(), ISBN_text.get()))
-def delete_command():
- backend.delete(selected_tuple[0])
- view_command()
+def clear_form() -> None:
+ """Clear entry widgets."""
+ title_text.set('')
+ author_text.set('')
+ year_text.set('')
+ ISBN_text.set('')
-def update_command():
- #be careful for the next line ---> we are updating using the texts in the entries, not the selected tuple
- backend.update(selected_tuple[0],title_text.get(), author_text.get(), year_text.get(), ISBN_text.get())
- view_command()
-#code for the GUI (front end)
-window = Tk()
-window.wm_title("The Book Store")
-l1 = Label(window, text = "Title")
-l1.grid(row = 0, column = 0)
+def selected_values() -> typing.Optional[typing.List]:
+ """
+ Get values from current selected row.
-l2 = Label(window, text = "Author")
-l2.grid(row = 0, column = 2)
+ Returns
+ -------
+ list
+ List with row values.
+ """
+ selections = list1.selection()
+ if selections:
+ selection = selections[0]
+ values = list1.item(selection)['values']
-l3 = Label(window, text = "Year")
-l3.grid(row = 1, column = 0)
+ return values
-l4 = Label(window, text = "ISBN")
-l4.grid(row = 1, column = 2)
+ return None
-title_text = StringVar()
-e1 = Entry(window, textvariable = title_text)
-e1.grid(row = 0, column = 1)
-author_text = StringVar()
-e2 = Entry(window, textvariable = author_text)
-e2.grid(row = 0, column = 3)
+def get_selected_row(*args):
+ """Update entrys from current selected row."""
+ values = selected_values()
+ if values:
+ e1.delete(0, tk.END)
+ e1.insert(tk.END, values[1])
-year_text = StringVar()
-e3 = Entry(window, textvariable = year_text)
-e3.grid(row = 1, column = 1)
+ e2.delete(0, tk.END)
+ e2.insert(tk.END, values[2])
-ISBN_text = StringVar()
-e4 = Entry(window, textvariable = ISBN_text)
-e4.grid(row = 1, column = 3)
+ e3.delete(0, tk.END)
+ e3.insert(tk.END, values[3])
+ e4.delete(0, tk.END)
+ e4.insert(tk.END, values[4])
-list1 = Listbox(window, height = 6, width = 35)
-list1.grid(row = 2, column =0, rowspan = 6, columnspan = 2)
-list1.bind('<>',get_selected_row)
+def view_command():
+ """Show all registers."""
+ clear_form()
+ list1.delete(*list1.get_children())
+ for row in backend.view():
+ list1.insert('', tk.END, values=(row))
-#now we need to attach a scrollbar to the listbox, and the other direction,too
-sb1 = Scrollbar(window)
-sb1.grid(row = 2, column = 2, rowspan = 6)
-list1.config(yscrollcommand = sb1.set)
-sb1.config(command = list1.yview)
+def search_command():
+ """Show registers that match with searched values."""
+ title = title_text.get()
+ author = author_text.get()
+ year = year_text.get()
+ isbn = ISBN_text.get()
+ list1.delete(*list1.get_children())
+ for row in backend.search(title, author, year, isbn):
+ list1.insert('', tk.END, values=(row))
-b1 = Button(window, text = "View all", width = 12, command = view_command)
-b1.grid(row = 2, column = 3)
-b2 = Button(window, text = "Search entry", width = 12, command = search_command)
-b2.grid(row = 3, column = 3)
+def add_command():
+ """Add a new registers from entry values."""
+ title = title_text.get()
+ author = author_text.get()
+ year = year_text.get()
+ isbn = ISBN_text.get()
+ backend.insert(title, author, year, isbn)
+ view_command()
-b3 = Button(window, text = "Add entry", width = 12, command = add_command)
-b3.grid(row = 4, column = 3)
-b4 = Button(window, text = "Update selected", width = 12, command = update_command)
-b4.grid(row = 5, column = 3)
+def delete_command():
+ """Delete current selected row."""
+ values = selected_values()
+ if values:
+ backend.delete(values[0])
+ view_command()
-b5 = Button(window, text = "Delete selected", width = 12, command = delete_command)
-b5.grid(row = 6, column = 3)
-b6 = Button(window, text = "Close", width = 12, command = window.destroy)
-b6.grid(row = 7, column = 3)
-window.mainloop()
\ No newline at end of file
+def update_command():
+ """Update current selected row using current entry values."""
+ values = selected_values()
+ if values:
+ idbook = values[0]
+ title = title_text.get()
+ author = author_text.get()
+ year = year_text.get()
+ isbn = ISBN_text.get()
+ backend.update(idbook, title, author, year, isbn)
+ view_command()
+
+
+# database
+backend = Backend(database_name=constants.DATABASE_NAME)
+
+# interface
+window = tk.Tk()
+window.wm_title('The Book Store')
+
+window.columnconfigure(0, weight=1)
+window.columnconfigure(1, weight=1)
+window.columnconfigure(2, weight=1)
+window.columnconfigure(3, weight=1)
+window.columnconfigure(4, weight=1)
+window.columnconfigure(5, weight=1)
+window.rowconfigure(2, weight=1)
+
+l1 = ttk.Label(window, text='Title', anchor='center')
+l1.grid(row=0, column=0, sticky='ew')
+
+title_text = tk.StringVar()
+e1 = ttk.Entry(window, textvariable=title_text)
+e1.grid(row=0, column=1, columnspan=2, sticky='ew')
+
+l2 = ttk.Label(window, text='Author', anchor='center')
+l2.grid(row=0, column=3, sticky='ew')
+
+author_text = tk.StringVar()
+e2 = ttk.Entry(window, textvariable=author_text)
+e2.grid(row=0, column=4, columnspan=2, sticky='ew')
+
+l3 = ttk.Label(window, text='Year', anchor='center')
+l3.grid(row=1, column=0, sticky='ew')
+
+year_text = tk.StringVar()
+e3 = ttk.Entry(window, textvariabl=year_text)
+e3.grid(row=1, column=1, columnspan=2, sticky='ew')
+
+l4 = ttk.Label(window, text='ISBN', anchor='center')
+l4.grid(row=1, column=3, sticky='ew')
+
+ISBN_text = tk.StringVar()
+e4 = ttk.Entry(window, textvariable=ISBN_text)
+e4.grid(row=1, column=4, columnspan=2, sticky='ew')
+
+list1 = ttk.Treeview(window, columns=('id', 'title', 'author', 'year', 'isbn'))
+list1.configure(show='headings')
+list1.heading('id', text='Id')
+list1.heading('title', text='Title')
+list1.heading('author', text='Author')
+list1.heading('year', text='Year')
+list1.heading('isbn', text='ISBN')
+list1.bind('<>', get_selected_row)
+list1.grid(row=2, column=0, columnspan=6, sticky='nsew', pady=20)
+
+sb1 = ttk.Scrollbar(window)
+sb1.grid(row=2, column=6, sticky='ns', pady=20)
+
+list1.config(yscrollcommand=sb1.set)
+sb1.config(command=list1.yview)
+
+eye_image = tk.PhotoImage(file=constants.EYE_IMAGE)
+b1 = ttk.Button(window, text='View all', command=view_command)
+b1.configure(image=eye_image, compound='left')
+b1.grid(row=3, column=0, sticky='ew')
+
+search_image = tk.PhotoImage(file=constants.SEARCH_IMAGE)
+b2 = ttk.Button(window, text='Search', command=search_command)
+b2.configure(image=search_image, compound='left')
+b2.grid(row=3, column=1, sticky='ew')
+
+add_image = tk.PhotoImage(file=constants.ADD_IMAGE)
+b3 = ttk.Button(window, text='Add', command=add_command)
+b3.configure(image=add_image, compound='left')
+b3.grid(row=3, column=2, sticky='ew')
+
+update_image = tk.PhotoImage(file=constants.UPDATE_IMAGE)
+b4 = ttk.Button(window, text='Update', command=update_command)
+b4.configure(image=update_image, compound='left')
+b4.grid(row=3, column=3, sticky='ew')
+
+delete_image = tk.PhotoImage(file=constants.DELETE_IMAGE)
+b5 = ttk.Button(window, text='Delete', command=delete_command)
+b5.configure(image=delete_image, compound='left')
+b5.grid(row=3, column=4, sticky='ew')
+
+close_image = tk.PhotoImage(file=constants.CLOSE_IMAGE)
+b6 = ttk.Button(window, text='Close', command=window.destroy)
+b6.configure(image=close_image, compound='left')
+b6.grid(row=3, column=5, columnspan=2, sticky='ew')
+
+# style
+font = 'Georgia 16 normal'
+style = ttk.Style()
+style.theme_use('clam')
+
+window.configure(background='#EFD3CD')
+style.configure('.', background='#EFD3CD')
+
+style.configure('TButton', background='#EBB6B3')
+style.configure('Treeview', rowheight=40)
+style.configure('Treeview.Heading', font=font)
+
+style.configure('.', font=font)
+for entry in (e1, e2, e3, e4):
+ entry.configure(font=font)
diff --git a/app/setup.py b/app/setup.py
deleted file mode 100644
index 9c115cb..0000000
--- a/app/setup.py
+++ /dev/null
@@ -1,19 +0,0 @@
-"""
-This is a setup.py script generated by py2applet
-
-Usage:
- python setup.py py2app
-"""
-
-from setuptools import setup
-
-APP = ['frontend.py']
-DATA_FILES = ['books.db']
-OPTIONS = {'argv_emulation': True}
-
-setup(
- app=APP,
- data_files=DATA_FILES,
- options={'py2app': OPTIONS},
- setup_requires=['py2app'],
-)
diff --git a/app/venv/.Python b/app/venv/.Python
deleted file mode 120000
index a199d2e..0000000
--- a/app/venv/.Python
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/Python
\ No newline at end of file
diff --git a/app/venv/bin/activate b/app/venv/bin/activate
deleted file mode 100644
index 341d781..0000000
--- a/app/venv/bin/activate
+++ /dev/null
@@ -1,78 +0,0 @@
-# This file must be used with "source bin/activate" *from bash*
-# you cannot run it directly
-
-deactivate () {
- unset -f pydoc >/dev/null 2>&1
-
- # reset old environment variables
- # ! [ -z ${VAR+_} ] returns true if VAR is declared at all
- if ! [ -z "${_OLD_VIRTUAL_PATH+_}" ] ; then
- PATH="$_OLD_VIRTUAL_PATH"
- export PATH
- unset _OLD_VIRTUAL_PATH
- fi
- if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then
- PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
- export PYTHONHOME
- unset _OLD_VIRTUAL_PYTHONHOME
- fi
-
- # This should detect bash and zsh, which have a hash command that must
- # be called to get it to forget past commands. Without forgetting
- # past commands the $PATH changes we made may not be respected
- if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then
- hash -r 2>/dev/null
- fi
-
- if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then
- PS1="$_OLD_VIRTUAL_PS1"
- export PS1
- unset _OLD_VIRTUAL_PS1
- fi
-
- unset VIRTUAL_ENV
- if [ ! "${1-}" = "nondestructive" ] ; then
- # Self destruct!
- unset -f deactivate
- fi
-}
-
-# unset irrelevant variables
-deactivate nondestructive
-
-VIRTUAL_ENV="/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv"
-export VIRTUAL_ENV
-
-_OLD_VIRTUAL_PATH="$PATH"
-PATH="$VIRTUAL_ENV/bin:$PATH"
-export PATH
-
-# unset PYTHONHOME if set
-if ! [ -z "${PYTHONHOME+_}" ] ; then
- _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
- unset PYTHONHOME
-fi
-
-if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then
- _OLD_VIRTUAL_PS1="$PS1"
- if [ "x" != x ] ; then
- PS1="$PS1"
- else
- PS1="(`basename \"$VIRTUAL_ENV\"`) $PS1"
- fi
- export PS1
-fi
-
-# Make sure to unalias pydoc if it's already there
-alias pydoc 2>/dev/null >/dev/null && unalias pydoc
-
-pydoc () {
- python -m pydoc "$@"
-}
-
-# This should detect bash and zsh, which have a hash command that must
-# be called to get it to forget past commands. Without forgetting
-# past commands the $PATH changes we made may not be respected
-if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then
- hash -r 2>/dev/null
-fi
diff --git a/app/venv/bin/activate.csh b/app/venv/bin/activate.csh
deleted file mode 100644
index de31ed0..0000000
--- a/app/venv/bin/activate.csh
+++ /dev/null
@@ -1,36 +0,0 @@
-# This file must be used with "source bin/activate.csh" *from csh*.
-# You cannot run it directly.
-# Created by Davide Di Blasi .
-
-alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc'
-
-# Unset irrelevant variables.
-deactivate nondestructive
-
-setenv VIRTUAL_ENV "/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv"
-
-set _OLD_VIRTUAL_PATH="$PATH"
-setenv PATH "$VIRTUAL_ENV/bin:$PATH"
-
-
-
-if ("" != "") then
- set env_name = ""
-else
- set env_name = `basename "$VIRTUAL_ENV"`
-endif
-
-# Could be in a non-interactive environment,
-# in which case, $prompt is undefined and we wouldn't
-# care about the prompt anyway.
-if ( $?prompt ) then
- set _OLD_VIRTUAL_PROMPT="$prompt"
- set prompt = "[$env_name] $prompt"
-endif
-
-unset env_name
-
-alias pydoc python -m pydoc
-
-rehash
-
diff --git a/app/venv/bin/activate.fish b/app/venv/bin/activate.fish
deleted file mode 100644
index 39b792d..0000000
--- a/app/venv/bin/activate.fish
+++ /dev/null
@@ -1,76 +0,0 @@
-# This file must be used using `. bin/activate.fish` *within a running fish ( http://fishshell.com ) session*.
-# Do not run it directly.
-
-function deactivate -d 'Exit virtualenv mode and return to the normal environment.'
- # reset old environment variables
- if test -n "$_OLD_VIRTUAL_PATH"
- set -gx PATH $_OLD_VIRTUAL_PATH
- set -e _OLD_VIRTUAL_PATH
- end
-
- if test -n "$_OLD_VIRTUAL_PYTHONHOME"
- set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
- set -e _OLD_VIRTUAL_PYTHONHOME
- end
-
- if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
- # Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`.
- set -l fish_function_path
-
- # Erase virtualenv's `fish_prompt` and restore the original.
- functions -e fish_prompt
- functions -c _old_fish_prompt fish_prompt
- functions -e _old_fish_prompt
- set -e _OLD_FISH_PROMPT_OVERRIDE
- end
-
- set -e VIRTUAL_ENV
-
- if test "$argv[1]" != 'nondestructive'
- # Self-destruct!
- functions -e pydoc
- functions -e deactivate
- end
-end
-
-# Unset irrelevant variables.
-deactivate nondestructive
-
-set -gx VIRTUAL_ENV "/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv"
-
-set -gx _OLD_VIRTUAL_PATH $PATH
-set -gx PATH "$VIRTUAL_ENV/bin" $PATH
-
-# Unset `$PYTHONHOME` if set.
-if set -q PYTHONHOME
- set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
- set -e PYTHONHOME
-end
-
-function pydoc
- python -m pydoc $argv
-end
-
-if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
- # Copy the current `fish_prompt` function as `_old_fish_prompt`.
- functions -c fish_prompt _old_fish_prompt
-
- function fish_prompt
- # Save the current $status, for fish_prompts that display it.
- set -l old_status $status
-
- # Prompt override provided?
- # If not, just prepend the environment name.
- if test -n ""
- printf '%s%s' "" (set_color normal)
- else
- printf '%s(%s) ' (set_color normal) (basename "$VIRTUAL_ENV")
- end
-
- # Restore the original $status
- echo "exit $old_status" | source
- _old_fish_prompt
- end
-
- set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
-end
diff --git a/app/venv/bin/activate_this.py b/app/venv/bin/activate_this.py
deleted file mode 100644
index f18193b..0000000
--- a/app/venv/bin/activate_this.py
+++ /dev/null
@@ -1,34 +0,0 @@
-"""By using execfile(this_file, dict(__file__=this_file)) you will
-activate this virtualenv environment.
-
-This can be used when you must use an existing Python interpreter, not
-the virtualenv bin/python
-"""
-
-try:
- __file__
-except NameError:
- raise AssertionError(
- "You must run this like execfile('path/to/activate_this.py', dict(__file__='path/to/activate_this.py'))")
-import sys
-import os
-
-old_os_path = os.environ.get('PATH', '')
-os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__)) + os.pathsep + old_os_path
-base = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-if sys.platform == 'win32':
- site_packages = os.path.join(base, 'Lib', 'site-packages')
-else:
- site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
-prev_sys_path = list(sys.path)
-import site
-site.addsitedir(site_packages)
-sys.real_prefix = sys.prefix
-sys.prefix = base
-# Move the added items to the front of the path:
-new_sys_path = []
-for item in list(sys.path):
- if item not in prev_sys_path:
- new_sys_path.append(item)
- sys.path.remove(item)
-sys.path[:0] = new_sys_path
diff --git a/app/venv/bin/easy_install b/app/venv/bin/easy_install
deleted file mode 100755
index dd535c2..0000000
--- a/app/venv/bin/easy_install
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from setuptools.command.easy_install import main
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
diff --git a/app/venv/bin/easy_install-3.6 b/app/venv/bin/easy_install-3.6
deleted file mode 100755
index dd535c2..0000000
--- a/app/venv/bin/easy_install-3.6
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from setuptools.command.easy_install import main
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
diff --git a/app/venv/bin/macho_dump b/app/venv/bin/macho_dump
deleted file mode 100755
index 524a270..0000000
--- a/app/venv/bin/macho_dump
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from macholib.macho_dump import main
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
diff --git a/app/venv/bin/macho_find b/app/venv/bin/macho_find
deleted file mode 100755
index fa091f4..0000000
--- a/app/venv/bin/macho_find
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from macholib.macho_find import main
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
diff --git a/app/venv/bin/macho_standalone b/app/venv/bin/macho_standalone
deleted file mode 100755
index 96b5a65..0000000
--- a/app/venv/bin/macho_standalone
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from macholib.macho_standalone import main
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
diff --git a/app/venv/bin/modulegraph b/app/venv/bin/modulegraph
deleted file mode 100755
index 307c750..0000000
--- a/app/venv/bin/modulegraph
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from modulegraph.__main__ import main
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
diff --git a/app/venv/bin/pip b/app/venv/bin/pip
deleted file mode 100755
index 8034fe2..0000000
--- a/app/venv/bin/pip
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from pip import main
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
diff --git a/app/venv/bin/pip3 b/app/venv/bin/pip3
deleted file mode 100755
index 8034fe2..0000000
--- a/app/venv/bin/pip3
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from pip import main
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
diff --git a/app/venv/bin/pip3.6 b/app/venv/bin/pip3.6
deleted file mode 100755
index 8034fe2..0000000
--- a/app/venv/bin/pip3.6
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from pip import main
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
diff --git a/app/venv/bin/py2applet b/app/venv/bin/py2applet
deleted file mode 100755
index 4710482..0000000
--- a/app/venv/bin/py2applet
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-# EASY-INSTALL-ENTRY-SCRIPT: 'py2app==0.10','console_scripts','py2applet'
-__requires__ = 'py2app==0.10'
-import re
-import sys
-from pkg_resources import load_entry_point
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(
- load_entry_point('py2app==0.10', 'console_scripts', 'py2applet')()
- )
diff --git a/app/venv/bin/python b/app/venv/bin/python
deleted file mode 120000
index 039b719..0000000
--- a/app/venv/bin/python
+++ /dev/null
@@ -1 +0,0 @@
-python3.6
\ No newline at end of file
diff --git a/app/venv/bin/python-config b/app/venv/bin/python-config
deleted file mode 100755
index 1243fe1..0000000
--- a/app/venv/bin/python-config
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python
-
-import sys
-import getopt
-import sysconfig
-
-valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
- 'ldflags', 'help']
-
-if sys.version_info >= (3, 2):
- valid_opts.insert(-1, 'extension-suffix')
- valid_opts.append('abiflags')
-if sys.version_info >= (3, 3):
- valid_opts.append('configdir')
-
-
-def exit_with_usage(code=1):
- sys.stderr.write("Usage: {0} [{1}]\n".format(
- sys.argv[0], '|'.join('--'+opt for opt in valid_opts)))
- sys.exit(code)
-
-try:
- opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
-except getopt.error:
- exit_with_usage()
-
-if not opts:
- exit_with_usage()
-
-pyver = sysconfig.get_config_var('VERSION')
-getvar = sysconfig.get_config_var
-
-opt_flags = [flag for (flag, val) in opts]
-
-if '--help' in opt_flags:
- exit_with_usage(code=0)
-
-for opt in opt_flags:
- if opt == '--prefix':
- print(sysconfig.get_config_var('prefix'))
-
- elif opt == '--exec-prefix':
- print(sysconfig.get_config_var('exec_prefix'))
-
- elif opt in ('--includes', '--cflags'):
- flags = ['-I' + sysconfig.get_path('include'),
- '-I' + sysconfig.get_path('platinclude')]
- if opt == '--cflags':
- flags.extend(getvar('CFLAGS').split())
- print(' '.join(flags))
-
- elif opt in ('--libs', '--ldflags'):
- abiflags = getattr(sys, 'abiflags', '')
- libs = ['-lpython' + pyver + abiflags]
- libs += getvar('LIBS').split()
- libs += getvar('SYSLIBS').split()
- # add the prefix/lib/pythonX.Y/config dir, but only if there is no
- # shared library in prefix/lib/.
- if opt == '--ldflags':
- if not getvar('Py_ENABLE_SHARED'):
- libs.insert(0, '-L' + getvar('LIBPL'))
- if not getvar('PYTHONFRAMEWORK'):
- libs.extend(getvar('LINKFORSHARED').split())
- print(' '.join(libs))
-
- elif opt == '--extension-suffix':
- ext_suffix = sysconfig.get_config_var('EXT_SUFFIX')
- if ext_suffix is None:
- ext_suffix = sysconfig.get_config_var('SO')
- print(ext_suffix)
-
- elif opt == '--abiflags':
- if not getattr(sys, 'abiflags', None):
- exit_with_usage()
- print(sys.abiflags)
-
- elif opt == '--configdir':
- print(sysconfig.get_config_var('LIBPL'))
diff --git a/app/venv/bin/python3 b/app/venv/bin/python3
deleted file mode 120000
index 039b719..0000000
--- a/app/venv/bin/python3
+++ /dev/null
@@ -1 +0,0 @@
-python3.6
\ No newline at end of file
diff --git a/app/venv/bin/python3.6 b/app/venv/bin/python3.6
deleted file mode 100755
index fb74bd1..0000000
Binary files a/app/venv/bin/python3.6 and /dev/null differ
diff --git a/app/venv/bin/wheel b/app/venv/bin/wheel
deleted file mode 100755
index 50c64d3..0000000
--- a/app/venv/bin/wheel
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/Users/gn03249822/Desktop/Coding_Projects/Python_Projects/bookDB_GUI/app/venv/bin/python3.6
-
-# -*- coding: utf-8 -*-
-import re
-import sys
-
-from wheel.tool import main
-
-if __name__ == '__main__':
- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
- sys.exit(main())
diff --git a/app/venv/include/python3.6m b/app/venv/include/python3.6m
deleted file mode 120000
index a0f3e18..0000000
--- a/app/venv/include/python3.6m
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/__future__.py b/app/venv/lib/python3.6/__future__.py
deleted file mode 120000
index b872ca1..0000000
--- a/app/venv/lib/python3.6/__future__.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/__future__.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/__pycache__/__future__.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/__future__.cpython-36.pyc
deleted file mode 100644
index a385fd0..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/__future__.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/_bootlocale.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/_bootlocale.cpython-36.pyc
deleted file mode 100644
index cfe6303..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/_bootlocale.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/_collections_abc.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/_collections_abc.cpython-36.pyc
deleted file mode 100644
index 7828696..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/_collections_abc.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/_weakrefset.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/_weakrefset.cpython-36.pyc
deleted file mode 100644
index 2854ddf..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/_weakrefset.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/abc.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/abc.cpython-36.pyc
deleted file mode 100644
index 7014054..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/abc.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/base64.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/base64.cpython-36.pyc
deleted file mode 100644
index 2af3f20..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/base64.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/bisect.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/bisect.cpython-36.pyc
deleted file mode 100644
index 5842f29..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/bisect.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/codecs.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/codecs.cpython-36.pyc
deleted file mode 100644
index 608f541..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/codecs.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/copy.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/copy.cpython-36.pyc
deleted file mode 100644
index e019cd8..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/copy.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/copyreg.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/copyreg.cpython-36.pyc
deleted file mode 100644
index b5da5ab..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/copyreg.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/enum.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/enum.cpython-36.pyc
deleted file mode 100644
index 81e75a8..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/enum.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/fnmatch.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/fnmatch.cpython-36.pyc
deleted file mode 100644
index eee0fbc..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/fnmatch.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/functools.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/functools.cpython-36.pyc
deleted file mode 100644
index 8d4e400..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/functools.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/genericpath.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/genericpath.cpython-36.pyc
deleted file mode 100644
index 69a2096..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/genericpath.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/hashlib.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/hashlib.cpython-36.pyc
deleted file mode 100644
index 8408d9b..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/hashlib.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/heapq.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/heapq.cpython-36.pyc
deleted file mode 100644
index ea72b3c..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/heapq.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/hmac.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/hmac.cpython-36.pyc
deleted file mode 100644
index c1cbb25..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/hmac.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/imp.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/imp.cpython-36.pyc
deleted file mode 100644
index af32c04..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/imp.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/io.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/io.cpython-36.pyc
deleted file mode 100644
index 195e1ff..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/io.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/keyword.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/keyword.cpython-36.pyc
deleted file mode 100644
index 6624935..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/keyword.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/linecache.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/linecache.cpython-36.pyc
deleted file mode 100644
index 8bc09ff..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/linecache.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/locale.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/locale.cpython-36.pyc
deleted file mode 100644
index 1195349..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/locale.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/operator.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/operator.cpython-36.pyc
deleted file mode 100644
index 30620fb..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/operator.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/os.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/os.cpython-36.pyc
deleted file mode 100644
index 855cc74..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/os.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/posixpath.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/posixpath.cpython-36.pyc
deleted file mode 100644
index cba851b..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/posixpath.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/random.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/random.cpython-36.pyc
deleted file mode 100644
index 236089b..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/random.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/re.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/re.cpython-36.pyc
deleted file mode 100644
index b4aac5c..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/re.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/reprlib.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/reprlib.cpython-36.pyc
deleted file mode 100644
index 56bfff5..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/reprlib.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/shutil.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/shutil.cpython-36.pyc
deleted file mode 100644
index 13900e4..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/shutil.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/site.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/site.cpython-36.pyc
deleted file mode 100644
index d18a1ee..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/site.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/sre_compile.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/sre_compile.cpython-36.pyc
deleted file mode 100644
index c0b23ff..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/sre_compile.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/sre_constants.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/sre_constants.cpython-36.pyc
deleted file mode 100644
index 82a8ff2..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/sre_constants.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/sre_parse.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/sre_parse.cpython-36.pyc
deleted file mode 100644
index 0770ced..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/sre_parse.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/stat.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/stat.cpython-36.pyc
deleted file mode 100644
index 34ebd66..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/stat.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/struct.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/struct.cpython-36.pyc
deleted file mode 100644
index 705f2a5..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/struct.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/tarfile.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/tarfile.cpython-36.pyc
deleted file mode 100644
index 4f82315..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/tarfile.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/tempfile.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/tempfile.cpython-36.pyc
deleted file mode 100644
index 146c2d5..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/tempfile.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/token.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/token.cpython-36.pyc
deleted file mode 100644
index 2cd375b..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/token.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/tokenize.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/tokenize.cpython-36.pyc
deleted file mode 100644
index d11f4d3..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/tokenize.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/types.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/types.cpython-36.pyc
deleted file mode 100644
index 2d3c702..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/types.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/warnings.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/warnings.cpython-36.pyc
deleted file mode 100644
index 9625807..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/warnings.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/__pycache__/weakref.cpython-36.pyc b/app/venv/lib/python3.6/__pycache__/weakref.cpython-36.pyc
deleted file mode 100644
index bfde242..0000000
Binary files a/app/venv/lib/python3.6/__pycache__/weakref.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/_bootlocale.py b/app/venv/lib/python3.6/_bootlocale.py
deleted file mode 120000
index 86e692f..0000000
--- a/app/venv/lib/python3.6/_bootlocale.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_bootlocale.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/_collections_abc.py b/app/venv/lib/python3.6/_collections_abc.py
deleted file mode 120000
index 6c14bfe..0000000
--- a/app/venv/lib/python3.6/_collections_abc.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_collections_abc.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/_dummy_thread.py b/app/venv/lib/python3.6/_dummy_thread.py
deleted file mode 120000
index 2dfda76..0000000
--- a/app/venv/lib/python3.6/_dummy_thread.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_dummy_thread.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/_weakrefset.py b/app/venv/lib/python3.6/_weakrefset.py
deleted file mode 120000
index 2e4d9c6..0000000
--- a/app/venv/lib/python3.6/_weakrefset.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_weakrefset.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/abc.py b/app/venv/lib/python3.6/abc.py
deleted file mode 120000
index a31fbfc..0000000
--- a/app/venv/lib/python3.6/abc.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/abc.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/base64.py b/app/venv/lib/python3.6/base64.py
deleted file mode 120000
index 1b7d69e..0000000
--- a/app/venv/lib/python3.6/base64.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/base64.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/bisect.py b/app/venv/lib/python3.6/bisect.py
deleted file mode 120000
index ecdeb49..0000000
--- a/app/venv/lib/python3.6/bisect.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/bisect.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/codecs.py b/app/venv/lib/python3.6/codecs.py
deleted file mode 120000
index cc7d07c..0000000
--- a/app/venv/lib/python3.6/codecs.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/codecs.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/collections b/app/venv/lib/python3.6/collections
deleted file mode 120000
index 89daf45..0000000
--- a/app/venv/lib/python3.6/collections
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/collections
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/config-3.6m-darwin b/app/venv/lib/python3.6/config-3.6m-darwin
deleted file mode 120000
index 93faa24..0000000
--- a/app/venv/lib/python3.6/config-3.6m-darwin
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/config-3.6m-darwin
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/copy.py b/app/venv/lib/python3.6/copy.py
deleted file mode 120000
index 7e58b98..0000000
--- a/app/venv/lib/python3.6/copy.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/copyreg.py b/app/venv/lib/python3.6/copyreg.py
deleted file mode 120000
index 16e36a7..0000000
--- a/app/venv/lib/python3.6/copyreg.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copyreg.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/distutils/__init__.py b/app/venv/lib/python3.6/distutils/__init__.py
deleted file mode 100644
index 29fc1da..0000000
--- a/app/venv/lib/python3.6/distutils/__init__.py
+++ /dev/null
@@ -1,101 +0,0 @@
-import os
-import sys
-import warnings
-import imp
-import opcode # opcode is not a virtualenv module, so we can use it to find the stdlib
- # Important! To work on pypy, this must be a module that resides in the
- # lib-python/modified-x.y.z directory
-
-dirname = os.path.dirname
-
-distutils_path = os.path.join(os.path.dirname(opcode.__file__), 'distutils')
-if os.path.normpath(distutils_path) == os.path.dirname(os.path.normpath(__file__)):
- warnings.warn(
- "The virtualenv distutils package at %s appears to be in the same location as the system distutils?")
-else:
- __path__.insert(0, distutils_path)
- real_distutils = imp.load_module("_virtualenv_distutils", None, distutils_path, ('', '', imp.PKG_DIRECTORY))
- # Copy the relevant attributes
- try:
- __revision__ = real_distutils.__revision__
- except AttributeError:
- pass
- __version__ = real_distutils.__version__
-
-from distutils import dist, sysconfig
-
-try:
- basestring
-except NameError:
- basestring = str
-
-## patch build_ext (distutils doesn't know how to get the libs directory
-## path on windows - it hardcodes the paths around the patched sys.prefix)
-
-if sys.platform == 'win32':
- from distutils.command.build_ext import build_ext as old_build_ext
- class build_ext(old_build_ext):
- def finalize_options (self):
- if self.library_dirs is None:
- self.library_dirs = []
- elif isinstance(self.library_dirs, basestring):
- self.library_dirs = self.library_dirs.split(os.pathsep)
-
- self.library_dirs.insert(0, os.path.join(sys.real_prefix, "Libs"))
- old_build_ext.finalize_options(self)
-
- from distutils.command import build_ext as build_ext_module
- build_ext_module.build_ext = build_ext
-
-## distutils.dist patches:
-
-old_find_config_files = dist.Distribution.find_config_files
-def find_config_files(self):
- found = old_find_config_files(self)
- system_distutils = os.path.join(distutils_path, 'distutils.cfg')
- #if os.path.exists(system_distutils):
- # found.insert(0, system_distutils)
- # What to call the per-user config file
- if os.name == 'posix':
- user_filename = ".pydistutils.cfg"
- else:
- user_filename = "pydistutils.cfg"
- user_filename = os.path.join(sys.prefix, user_filename)
- if os.path.isfile(user_filename):
- for item in list(found):
- if item.endswith('pydistutils.cfg'):
- found.remove(item)
- found.append(user_filename)
- return found
-dist.Distribution.find_config_files = find_config_files
-
-## distutils.sysconfig patches:
-
-old_get_python_inc = sysconfig.get_python_inc
-def sysconfig_get_python_inc(plat_specific=0, prefix=None):
- if prefix is None:
- prefix = sys.real_prefix
- return old_get_python_inc(plat_specific, prefix)
-sysconfig_get_python_inc.__doc__ = old_get_python_inc.__doc__
-sysconfig.get_python_inc = sysconfig_get_python_inc
-
-old_get_python_lib = sysconfig.get_python_lib
-def sysconfig_get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
- if standard_lib and prefix is None:
- prefix = sys.real_prefix
- return old_get_python_lib(plat_specific, standard_lib, prefix)
-sysconfig_get_python_lib.__doc__ = old_get_python_lib.__doc__
-sysconfig.get_python_lib = sysconfig_get_python_lib
-
-old_get_config_vars = sysconfig.get_config_vars
-def sysconfig_get_config_vars(*args):
- real_vars = old_get_config_vars(*args)
- if sys.platform == 'win32':
- lib_dir = os.path.join(sys.real_prefix, "libs")
- if isinstance(real_vars, dict) and 'LIBDIR' not in real_vars:
- real_vars['LIBDIR'] = lib_dir # asked for all
- elif isinstance(real_vars, list) and 'LIBDIR' in args:
- real_vars = real_vars + [lib_dir] # asked for list
- return real_vars
-sysconfig_get_config_vars.__doc__ = old_get_config_vars.__doc__
-sysconfig.get_config_vars = sysconfig_get_config_vars
diff --git a/app/venv/lib/python3.6/distutils/__pycache__/__init__.cpython-36.pyc b/app/venv/lib/python3.6/distutils/__pycache__/__init__.cpython-36.pyc
deleted file mode 100644
index 7e29733..0000000
Binary files a/app/venv/lib/python3.6/distutils/__pycache__/__init__.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/distutils/distutils.cfg b/app/venv/lib/python3.6/distutils/distutils.cfg
deleted file mode 100644
index 1af230e..0000000
--- a/app/venv/lib/python3.6/distutils/distutils.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-# This is a config file local to this virtualenv installation
-# You may include options that will be used by all distutils commands,
-# and by easy_install. For instance:
-#
-# [easy_install]
-# find_links = http://mylocalsite
diff --git a/app/venv/lib/python3.6/encodings b/app/venv/lib/python3.6/encodings
deleted file mode 120000
index cdd9766..0000000
--- a/app/venv/lib/python3.6/encodings
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/encodings
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/enum.py b/app/venv/lib/python3.6/enum.py
deleted file mode 120000
index c8494c6..0000000
--- a/app/venv/lib/python3.6/enum.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/enum.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/fnmatch.py b/app/venv/lib/python3.6/fnmatch.py
deleted file mode 120000
index 5f57e43..0000000
--- a/app/venv/lib/python3.6/fnmatch.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/fnmatch.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/functools.py b/app/venv/lib/python3.6/functools.py
deleted file mode 120000
index 9836807..0000000
--- a/app/venv/lib/python3.6/functools.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/functools.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/genericpath.py b/app/venv/lib/python3.6/genericpath.py
deleted file mode 120000
index 132cfbf..0000000
--- a/app/venv/lib/python3.6/genericpath.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/genericpath.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/hashlib.py b/app/venv/lib/python3.6/hashlib.py
deleted file mode 120000
index 9c7d1d9..0000000
--- a/app/venv/lib/python3.6/hashlib.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/hashlib.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/heapq.py b/app/venv/lib/python3.6/heapq.py
deleted file mode 120000
index 45709d0..0000000
--- a/app/venv/lib/python3.6/heapq.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/heapq.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/hmac.py b/app/venv/lib/python3.6/hmac.py
deleted file mode 120000
index 0195408..0000000
--- a/app/venv/lib/python3.6/hmac.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/hmac.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/imp.py b/app/venv/lib/python3.6/imp.py
deleted file mode 120000
index c537a34..0000000
--- a/app/venv/lib/python3.6/imp.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/imp.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/importlib b/app/venv/lib/python3.6/importlib
deleted file mode 120000
index ab6abd9..0000000
--- a/app/venv/lib/python3.6/importlib
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/importlib
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/io.py b/app/venv/lib/python3.6/io.py
deleted file mode 120000
index 158eaca..0000000
--- a/app/venv/lib/python3.6/io.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/io.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/keyword.py b/app/venv/lib/python3.6/keyword.py
deleted file mode 120000
index 3b3a04c..0000000
--- a/app/venv/lib/python3.6/keyword.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/keyword.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/lib-dynload b/app/venv/lib/python3.6/lib-dynload
deleted file mode 120000
index a0e6f9b..0000000
--- a/app/venv/lib/python3.6/lib-dynload
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/linecache.py b/app/venv/lib/python3.6/linecache.py
deleted file mode 120000
index 2a81bfa..0000000
--- a/app/venv/lib/python3.6/linecache.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/linecache.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/locale.py b/app/venv/lib/python3.6/locale.py
deleted file mode 120000
index 91ff291..0000000
--- a/app/venv/lib/python3.6/locale.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/locale.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/no-global-site-packages.txt b/app/venv/lib/python3.6/no-global-site-packages.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/app/venv/lib/python3.6/ntpath.py b/app/venv/lib/python3.6/ntpath.py
deleted file mode 120000
index 75adb5f..0000000
--- a/app/venv/lib/python3.6/ntpath.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ntpath.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/operator.py b/app/venv/lib/python3.6/operator.py
deleted file mode 120000
index 132dfe1..0000000
--- a/app/venv/lib/python3.6/operator.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/operator.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/orig-prefix.txt b/app/venv/lib/python3.6/orig-prefix.txt
deleted file mode 100644
index 147f6e2..0000000
--- a/app/venv/lib/python3.6/orig-prefix.txt
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/os.py b/app/venv/lib/python3.6/os.py
deleted file mode 120000
index 3e95ba4..0000000
--- a/app/venv/lib/python3.6/os.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/os.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/posixpath.py b/app/venv/lib/python3.6/posixpath.py
deleted file mode 120000
index 001775e..0000000
--- a/app/venv/lib/python3.6/posixpath.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/posixpath.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/random.py b/app/venv/lib/python3.6/random.py
deleted file mode 120000
index 3e75bcf..0000000
--- a/app/venv/lib/python3.6/random.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/random.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/re.py b/app/venv/lib/python3.6/re.py
deleted file mode 120000
index ae91da7..0000000
--- a/app/venv/lib/python3.6/re.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/readline.so b/app/venv/lib/python3.6/readline.so
deleted file mode 120000
index 66558e8..0000000
--- a/app/venv/lib/python3.6/readline.so
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload/readline.cpython-36m-darwin.so
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/reprlib.py b/app/venv/lib/python3.6/reprlib.py
deleted file mode 120000
index 1ff2da8..0000000
--- a/app/venv/lib/python3.6/reprlib.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/reprlib.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/rlcompleter.py b/app/venv/lib/python3.6/rlcompleter.py
deleted file mode 120000
index 7142da6..0000000
--- a/app/venv/lib/python3.6/rlcompleter.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/rlcompleter.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/shutil.py b/app/venv/lib/python3.6/shutil.py
deleted file mode 120000
index 32bdd22..0000000
--- a/app/venv/lib/python3.6/shutil.py
+++ /dev/null
@@ -1 +0,0 @@
-/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/shutil.py
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/site-packages/__pycache__/easy_install.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/__pycache__/easy_install.cpython-36.pyc
deleted file mode 100644
index 7625c61..0000000
Binary files a/app/venv/lib/python3.6/site-packages/__pycache__/easy_install.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/DESCRIPTION.rst b/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/DESCRIPTION.rst
deleted file mode 100644
index b9983a4..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/DESCRIPTION.rst
+++ /dev/null
@@ -1,224 +0,0 @@
-altgraph is a fork of graphlib: a graph (network) package for constructing
-graphs, BFS and DFS traversals, topological sort, shortest paths, etc. with
-graphviz output.
-
-altgraph includes some additional usage of Python 2.6+ features and
-enhancements related to modulegraph and macholib.
-
-Project links
--------------
-
-* `Documentation `_
-
-* `Issue Tracker `_
-
-* `Repository `_
-
-
-Release history
-===============
-
-0.15
-----
-
-* ``ObjectGraph.get_edges``, ``ObjectGraph.getEdgeData`` and ``ObjectGraph.updateEdgeData``
- accept *None* as the node to get and treat this as an alias for *self* (as other
- methods already did).
-
-0.14
-----
-
-- Issue #7: Remove use of ``iteritems`` in altgraph.GraphAlgo code
-
-0.13
-----
-
-- Issue #4: Graph._bfs_subgraph and back_bfs_subgraph return subgraphs with reversed edges
-
- Fix by "pombredanne" on bitbucket.
-
-
-0.12
-----
-
-- Added ``ObjectGraph.edgeData`` to retrieve the edge data
- from a specific edge.
-
-- Added ``AltGraph.update_edge_data`` and ``ObjectGraph.updateEdgeData``
- to update the data associated with a graph edge.
-
-0.11
-----
-
-- Stabilize the order of elements in dot file exports,
- patch from bitbucket user 'pombredanne'.
-
-- Tweak setup.py file to remove dependency on distribute (but
- keep the dependency on setuptools)
-
-
-0.10.2
-------
-
-- There where no classifiers in the package metadata due to a bug
- in setup.py
-
-0.10.1
-------
-
-This is a bugfix release
-
-Bug fixes:
-
-- Issue #3: The source archive contains a README.txt
- while the setup file refers to ReadMe.txt.
-
- This is caused by a misfeature in distutils, as a
- workaround I've renamed ReadMe.txt to README.txt
- in the source tree and setup file.
-
-
-0.10
------
-
-This is a minor feature release
-
-Features:
-
-- Do not use "2to3" to support Python 3.
-
- As a side effect of this altgraph now supports
- Python 2.6 and later, and no longer supports
- earlier releases of Python.
-
-- The order of attributes in the Dot output
- is now always alphabetical.
-
- With this change the output will be consistent
- between runs and Python versions.
-
-0.9
----
-
-This is a minor bugfix release
-
-Features:
-
-- Added ``altgraph.ObjectGraph.ObjectGraph.nodes``, a method
- yielding all nodes in an object graph.
-
-Bugfixes:
-
-- The 0.8 release didn't work with py2app when using
- python 3.x.
-
-
-0.8
------
-
-This is a minor feature release. The major new feature
-is a extensive set of unittests, which explains almost
-all other changes in this release.
-
-Bugfixes:
-
-- Installing failed with Python 2.5 due to using a distutils
- class that isn't available in that version of Python
- (issue #1 on the issue tracker)
-
-- ``altgraph.GraphStat.degree_dist`` now actually works
-
-- ``altgraph.Graph.add_edge(a, b, create_nodes=False)`` will
- no longer create the edge when one of the nodes doesn't
- exist.
-
-- ``altgraph.Graph.forw_topo_sort`` failed for some sparse graphs.
-
-- ``altgraph.Graph.back_topo_sort`` was completely broken in
- previous releases.
-
-- ``altgraph.Graph.forw_bfs_subgraph`` now actually works.
-
-- ``altgraph.Graph.back_bfs_subgraph`` now actually works.
-
-- ``altgraph.Graph.iterdfs`` now returns the correct result
- when the ``forward`` argument is ``False``.
-
-- ``altgraph.Graph.iterdata`` now returns the correct result
- when the ``forward`` argument is ``False``.
-
-
-Features:
-
-- The ``altgraph.Graph`` constructor now accepts an argument
- that contains 2- and 3-tuples instead of requireing that
- all items have the same size. The (optional) argument can now
- also be any iterator.
-
-- ``altgraph.Graph.Graph.add_node`` has no effect when you
- add a hidden node.
-
-- The private method ``altgraph.Graph._bfs`` is no longer
- present.
-
-- The private method ``altgraph.Graph._dfs`` is no longer
- present.
-
-- ``altgraph.ObjectGraph`` now has a ``__contains__`` methods,
- which means you can use the ``in`` operator to check if a
- node is part of a graph.
-
-- ``altgraph.GraphUtil.generate_random_graph`` will raise
- ``GraphError`` instead of looping forever when it is
- impossible to create the requested graph.
-
-- ``altgraph.Dot.edge_style`` raises ``GraphError`` when
- one of the nodes is not present in the graph. The method
- silently added the tail in the past, but without ensuring
- a consistent graph state.
-
-- ``altgraph.Dot.save_img`` now works when the mode is
- ``"neato"``.
-
-0.7.2
------
-
-This is a minor bugfix release
-
-Bugfixes:
-
-- distutils didn't include the documentation subtree
-
-0.7.1
------
-
-This is a minor feature release
-
-Features:
-
-- Documentation is now generated using `sphinx `_
- and can be viewed at .
-
-- The repository has moved to bitbucket
-
-- ``altgraph.GraphStat.avg_hops`` is no longer present, the function had no
- implementation and no specified behaviour.
-
-- the module ``altgraph.compat`` is gone, which means altgraph will no
- longer work with Python 2.3.
-
-
-0.7.0
------
-
-This is a minor feature release.
-
-Features:
-
-- Support for Python 3
-
-- It is now possible to run tests using 'python setup.py test'
-
- (The actual testsuite is still very minimal though)
-
-
diff --git a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/INSTALLER b/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/INSTALLER
deleted file mode 100644
index a1b589e..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/INSTALLER
+++ /dev/null
@@ -1 +0,0 @@
-pip
diff --git a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/METADATA b/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/METADATA
deleted file mode 100644
index a7cd037..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/METADATA
+++ /dev/null
@@ -1,250 +0,0 @@
-Metadata-Version: 2.0
-Name: altgraph
-Version: 0.15
-Summary: Python graph (network) package
-Home-page: https://altgraph.readthedocs.io
-Author: Ronald Oussoren
-Author-email: ronaldoussoren@mac.com
-License: MIT
-Download-URL: http://pypi.python.org/pypi/altgraph
-Keywords: graph
-Platform: any
-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: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Topic :: Scientific/Engineering :: Mathematics
-Classifier: Topic :: Scientific/Engineering :: Visualization
-Project-URL: Documentation, https://altgraph.readthedocs.io/en/latest/
-Project-URL: Issue tracker, https://bitbucket.org/ronaldoussoren/altgraph/issues?status=new&status=open
-
-altgraph is a fork of graphlib: a graph (network) package for constructing
-graphs, BFS and DFS traversals, topological sort, shortest paths, etc. with
-graphviz output.
-
-altgraph includes some additional usage of Python 2.6+ features and
-enhancements related to modulegraph and macholib.
-
-Project links
--------------
-
-* `Documentation `_
-
-* `Issue Tracker `_
-
-* `Repository `_
-
-
-Release history
-===============
-
-0.15
-----
-
-* ``ObjectGraph.get_edges``, ``ObjectGraph.getEdgeData`` and ``ObjectGraph.updateEdgeData``
- accept *None* as the node to get and treat this as an alias for *self* (as other
- methods already did).
-
-0.14
-----
-
-- Issue #7: Remove use of ``iteritems`` in altgraph.GraphAlgo code
-
-0.13
-----
-
-- Issue #4: Graph._bfs_subgraph and back_bfs_subgraph return subgraphs with reversed edges
-
- Fix by "pombredanne" on bitbucket.
-
-
-0.12
-----
-
-- Added ``ObjectGraph.edgeData`` to retrieve the edge data
- from a specific edge.
-
-- Added ``AltGraph.update_edge_data`` and ``ObjectGraph.updateEdgeData``
- to update the data associated with a graph edge.
-
-0.11
-----
-
-- Stabilize the order of elements in dot file exports,
- patch from bitbucket user 'pombredanne'.
-
-- Tweak setup.py file to remove dependency on distribute (but
- keep the dependency on setuptools)
-
-
-0.10.2
-------
-
-- There where no classifiers in the package metadata due to a bug
- in setup.py
-
-0.10.1
-------
-
-This is a bugfix release
-
-Bug fixes:
-
-- Issue #3: The source archive contains a README.txt
- while the setup file refers to ReadMe.txt.
-
- This is caused by a misfeature in distutils, as a
- workaround I've renamed ReadMe.txt to README.txt
- in the source tree and setup file.
-
-
-0.10
------
-
-This is a minor feature release
-
-Features:
-
-- Do not use "2to3" to support Python 3.
-
- As a side effect of this altgraph now supports
- Python 2.6 and later, and no longer supports
- earlier releases of Python.
-
-- The order of attributes in the Dot output
- is now always alphabetical.
-
- With this change the output will be consistent
- between runs and Python versions.
-
-0.9
----
-
-This is a minor bugfix release
-
-Features:
-
-- Added ``altgraph.ObjectGraph.ObjectGraph.nodes``, a method
- yielding all nodes in an object graph.
-
-Bugfixes:
-
-- The 0.8 release didn't work with py2app when using
- python 3.x.
-
-
-0.8
------
-
-This is a minor feature release. The major new feature
-is a extensive set of unittests, which explains almost
-all other changes in this release.
-
-Bugfixes:
-
-- Installing failed with Python 2.5 due to using a distutils
- class that isn't available in that version of Python
- (issue #1 on the issue tracker)
-
-- ``altgraph.GraphStat.degree_dist`` now actually works
-
-- ``altgraph.Graph.add_edge(a, b, create_nodes=False)`` will
- no longer create the edge when one of the nodes doesn't
- exist.
-
-- ``altgraph.Graph.forw_topo_sort`` failed for some sparse graphs.
-
-- ``altgraph.Graph.back_topo_sort`` was completely broken in
- previous releases.
-
-- ``altgraph.Graph.forw_bfs_subgraph`` now actually works.
-
-- ``altgraph.Graph.back_bfs_subgraph`` now actually works.
-
-- ``altgraph.Graph.iterdfs`` now returns the correct result
- when the ``forward`` argument is ``False``.
-
-- ``altgraph.Graph.iterdata`` now returns the correct result
- when the ``forward`` argument is ``False``.
-
-
-Features:
-
-- The ``altgraph.Graph`` constructor now accepts an argument
- that contains 2- and 3-tuples instead of requireing that
- all items have the same size. The (optional) argument can now
- also be any iterator.
-
-- ``altgraph.Graph.Graph.add_node`` has no effect when you
- add a hidden node.
-
-- The private method ``altgraph.Graph._bfs`` is no longer
- present.
-
-- The private method ``altgraph.Graph._dfs`` is no longer
- present.
-
-- ``altgraph.ObjectGraph`` now has a ``__contains__`` methods,
- which means you can use the ``in`` operator to check if a
- node is part of a graph.
-
-- ``altgraph.GraphUtil.generate_random_graph`` will raise
- ``GraphError`` instead of looping forever when it is
- impossible to create the requested graph.
-
-- ``altgraph.Dot.edge_style`` raises ``GraphError`` when
- one of the nodes is not present in the graph. The method
- silently added the tail in the past, but without ensuring
- a consistent graph state.
-
-- ``altgraph.Dot.save_img`` now works when the mode is
- ``"neato"``.
-
-0.7.2
------
-
-This is a minor bugfix release
-
-Bugfixes:
-
-- distutils didn't include the documentation subtree
-
-0.7.1
------
-
-This is a minor feature release
-
-Features:
-
-- Documentation is now generated using `sphinx `_
- and can be viewed at .
-
-- The repository has moved to bitbucket
-
-- ``altgraph.GraphStat.avg_hops`` is no longer present, the function had no
- implementation and no specified behaviour.
-
-- the module ``altgraph.compat`` is gone, which means altgraph will no
- longer work with Python 2.3.
-
-
-0.7.0
------
-
-This is a minor feature release.
-
-Features:
-
-- Support for Python 3
-
-- It is now possible to run tests using 'python setup.py test'
-
- (The actual testsuite is still very minimal though)
-
-
diff --git a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/RECORD b/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/RECORD
deleted file mode 100644
index 63069a5..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/RECORD
+++ /dev/null
@@ -1,22 +0,0 @@
-altgraph/Dot.py,sha256=yO_zuQFdOJgc6g4jHszl3rRmL6ER4kEIaRZe_dxfpvs,9867
-altgraph/Graph.py,sha256=VsPKMHf_PFY1C9wtiEK16kTEUIVTVPu48mNT__zp3rU,20798
-altgraph/GraphAlgo.py,sha256=s_BOn4H9DsmWlAQOd4bhRlfHjIYo_ATQdKO5xUcE2ew,5574
-altgraph/GraphStat.py,sha256=Lq_UxQew808PD5Yf4iKg31SHvmeAOdZZC7PNgmZSPYA,1880
-altgraph/GraphUtil.py,sha256=Dtsqd50o5MB9EaxYqnVvJqyCHjhfqmU84ovuho1ky7c,4070
-altgraph/ObjectGraph.py,sha256=gYYlU8bVX7mGW-nhRRchvl0dhgNAbzK6RJLDgNzXGHU,6504
-altgraph/__init__.py,sha256=pRBQvqRgwe9B7MdHtT1NoRZJyZvZuH9BwKgVxANACYk,5014
-altgraph-0.15.dist-info/DESCRIPTION.rst,sha256=xJWzSosrFrWUml_YGK2DLH5b-xaeZwzIsJKUioy6cF0,5257
-altgraph-0.15.dist-info/METADATA,sha256=B7GDtQMT-7Tec8lI7yzCeOHWCMhzyuLzRXuqpa3xpZ4,6349
-altgraph-0.15.dist-info/RECORD,,
-altgraph-0.15.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110
-altgraph-0.15.dist-info/metadata.json,sha256=2CjfCyU3mVFzg1GLzhMGeUrCCUzw_o1H8Q3aWyOxvKc,1123
-altgraph-0.15.dist-info/top_level.txt,sha256=HEBeRWf5ItVPc7Y9hW7hGlrLXZjPoL4by6CAhBV_BwA,9
-altgraph-0.15.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
-altgraph-0.15.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-altgraph/__pycache__/GraphAlgo.cpython-36.pyc,,
-altgraph/__pycache__/GraphUtil.cpython-36.pyc,,
-altgraph/__pycache__/GraphStat.cpython-36.pyc,,
-altgraph/__pycache__/Dot.cpython-36.pyc,,
-altgraph/__pycache__/__init__.cpython-36.pyc,,
-altgraph/__pycache__/Graph.cpython-36.pyc,,
-altgraph/__pycache__/ObjectGraph.cpython-36.pyc,,
diff --git a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/WHEEL b/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/WHEEL
deleted file mode 100644
index 8b6dd1b..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/WHEEL
+++ /dev/null
@@ -1,6 +0,0 @@
-Wheel-Version: 1.0
-Generator: bdist_wheel (0.29.0)
-Root-Is-Purelib: true
-Tag: py2-none-any
-Tag: py3-none-any
-
diff --git a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/metadata.json b/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/metadata.json
deleted file mode 100644
index fb16cf7..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/metadata.json
+++ /dev/null
@@ -1 +0,0 @@
-{"classifiers": ["Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Scientific/Engineering :: Visualization"], "download_url": "http://pypi.python.org/pypi/altgraph", "extensions": {"python.details": {"contacts": [{"email": "ronaldoussoren@mac.com", "name": "Ronald Oussoren", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://altgraph.readthedocs.io"}}}, "generator": "bdist_wheel (0.29.0)", "keywords": ["graph"], "license": "MIT", "metadata_version": "2.0", "name": "altgraph", "platform": "any", "project_url": "Documentation, https://altgraph.readthedocs.io/en/latest/", "summary": "Python graph (network) package", "version": "0.15"}
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/top_level.txt b/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/top_level.txt
deleted file mode 100644
index 5ad6b8a..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/top_level.txt
+++ /dev/null
@@ -1 +0,0 @@
-altgraph
diff --git a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/zip-safe b/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/zip-safe
deleted file mode 100644
index 8b13789..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph-0.15.dist-info/zip-safe
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/Dot.py b/app/venv/lib/python3.6/site-packages/altgraph/Dot.py
deleted file mode 100644
index 3ef04d4..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph/Dot.py
+++ /dev/null
@@ -1,309 +0,0 @@
-'''
-altgraph.Dot - Interface to the dot language
-============================================
-
-The :py:mod:`~altgraph.Dot` module provides a simple interface to the
-file format used in the
-`graphviz `_
-program. The module is intended to offload the most tedious part of the process
-(the **dot** file generation) while transparently exposing most of its
-features.
-
-To display the graphs or to generate image files the
-`graphviz `_
-package needs to be installed on the system, moreover the :command:`dot` and
-:command:`dotty` programs must be accesible in the program path so that they
-can be ran from processes spawned within the module.
-
-Example usage
--------------
-
-Here is a typical usage::
-
- from altgraph import Graph, Dot
-
- # create a graph
- edges = [ (1,2), (1,3), (3,4), (3,5), (4,5), (5,4) ]
- graph = Graph.Graph(edges)
-
- # create a dot representation of the graph
- dot = Dot.Dot(graph)
-
- # display the graph
- dot.display()
-
- # save the dot representation into the mydot.dot file
- dot.save_dot(file_name='mydot.dot')
-
- # save dot file as gif image into the graph.gif file
- dot.save_img(file_name='graph', file_type='gif')
-
-Directed graph and non-directed graph
--------------------------------------
-
-Dot class can use for both directed graph and non-directed graph
-by passing ``graphtype`` parameter.
-
-Example::
-
- # create directed graph(default)
- dot = Dot.Dot(graph, graphtype="digraph")
-
- # create non-directed graph
- dot = Dot.Dot(graph, graphtype="graph")
-
-Customizing the output
-----------------------
-
-The graph drawing process may be customized by passing
-valid :command:`dot` parameters for the nodes and edges. For a list of all
-parameters see the `graphviz `_
-documentation.
-
-Example::
-
- # customizing the way the overall graph is drawn
- dot.style(size='10,10', rankdir='RL', page='5, 5' , ranksep=0.75)
-
- # customizing node drawing
- dot.node_style(1, label='BASE_NODE',shape='box', color='blue' )
- dot.node_style(2, style='filled', fillcolor='red')
-
- # customizing edge drawing
- dot.edge_style(1, 2, style='dotted')
- dot.edge_style(3, 5, arrowhead='dot', label='binds', labelangle='90')
- dot.edge_style(4, 5, arrowsize=2, style='bold')
-
-
-.. note::
-
- dotty (invoked via :py:func:`~altgraph.Dot.display`) may not be able to
- display all graphics styles. To verify the output save it to an image file
- and look at it that way.
-
-Valid attributes
-----------------
-
- - dot styles, passed via the :py:meth:`Dot.style` method::
-
- rankdir = 'LR' (draws the graph horizontally, left to right)
- ranksep = number (rank separation in inches)
-
- - node attributes, passed via the :py:meth:`Dot.node_style` method::
-
- style = 'filled' | 'invisible' | 'diagonals' | 'rounded'
- shape = 'box' | 'ellipse' | 'circle' | 'point' | 'triangle'
-
- - edge attributes, passed via the :py:meth:`Dot.edge_style` method::
-
- style = 'dashed' | 'dotted' | 'solid' | 'invis' | 'bold'
- arrowhead = 'box' | 'crow' | 'diamond' | 'dot' | 'inv' | 'none'
- | 'tee' | 'vee'
- weight = number (the larger the number the closer the nodes will be)
-
- - valid `graphviz colors
- `_
-
- - for more details on how to control the graph drawing process see the
- `graphviz reference
- `_.
-'''
-import os
-import warnings
-
-from altgraph import GraphError
-
-
-class Dot(object):
- '''
- A class providing a **graphviz** (dot language) representation
- allowing a fine grained control over how the graph is being
- displayed.
-
- If the :command:`dot` and :command:`dotty` programs are not in the current
- system path their location needs to be specified in the contructor.
- '''
-
- def __init__(
- self, graph=None, nodes=None, edgefn=None, nodevisitor=None,
- edgevisitor=None, name="G", dot='dot', dotty='dotty',
- neato='neato', graphtype="digraph"):
- '''
- Initialization.
- '''
- self.name, self.attr = name, {}
-
- assert graphtype in ['graph', 'digraph']
- self.type = graphtype
-
- self.temp_dot = "tmp_dot.dot"
- self.temp_neo = "tmp_neo.dot"
-
- self.dot, self.dotty, self.neato = dot, dotty, neato
-
- # self.nodes: node styles
- # self.edges: edge styles
- self.nodes, self.edges = {}, {}
-
- if graph is not None and nodes is None:
- nodes = graph
- if graph is not None and edgefn is None:
- def edgefn(node, graph=graph):
- return graph.out_nbrs(node)
- if nodes is None:
- nodes = ()
-
- seen = set()
- for node in nodes:
- if nodevisitor is None:
- style = {}
- else:
- style = nodevisitor(node)
- if style is not None:
- self.nodes[node] = {}
- self.node_style(node, **style)
- seen.add(node)
- if edgefn is not None:
- for head in seen:
- for tail in (n for n in edgefn(head) if n in seen):
- if edgevisitor is None:
- edgestyle = {}
- else:
- edgestyle = edgevisitor(head, tail)
- if edgestyle is not None:
- if head not in self.edges:
- self.edges[head] = {}
- self.edges[head][tail] = {}
- self.edge_style(head, tail, **edgestyle)
-
- def style(self, **attr):
- '''
- Changes the overall style
- '''
- self.attr = attr
-
- def display(self, mode='dot'):
- '''
- Displays the current graph via dotty
- '''
-
- if mode == 'neato':
- self.save_dot(self.temp_neo)
- neato_cmd = "%s -o %s %s" % (
- self.neato, self.temp_dot, self.temp_neo)
- os.system(neato_cmd)
- else:
- self.save_dot(self.temp_dot)
-
- plot_cmd = "%s %s" % (self.dotty, self.temp_dot)
- os.system(plot_cmd)
-
- def node_style(self, node, **kwargs):
- '''
- Modifies a node style to the dot representation.
- '''
- if node not in self.edges:
- self.edges[node] = {}
- self.nodes[node] = kwargs
-
- def all_node_style(self, **kwargs):
- '''
- Modifies all node styles
- '''
- for node in self.nodes:
- self.node_style(node, **kwargs)
-
- def edge_style(self, head, tail, **kwargs):
- '''
- Modifies an edge style to the dot representation.
- '''
- if tail not in self.nodes:
- raise GraphError("invalid node %s" % (tail,))
-
- try:
- if tail not in self.edges[head]:
- self.edges[head][tail] = {}
- self.edges[head][tail] = kwargs
- except KeyError:
- raise GraphError("invalid edge %s -> %s " % (head, tail))
-
- def iterdot(self):
- # write graph title
- if self.type == 'digraph':
- yield 'digraph %s {\n' % (self.name,)
- elif self.type == 'graph':
- yield 'graph %s {\n' % (self.name,)
-
- else:
- raise GraphError("unsupported graphtype %s" % (self.type,))
-
- # write overall graph attributes
- for attr_name, attr_value in sorted(self.attr.items()):
- yield '%s="%s";' % (attr_name, attr_value)
- yield '\n'
-
- # some reusable patterns
- cpatt = '%s="%s",' # to separate attributes
- epatt = '];\n' # to end attributes
-
- # write node attributes
- for node_name, node_attr in sorted(self.nodes.items()):
- yield '\t"%s" [' % (node_name,)
- for attr_name, attr_value in sorted(node_attr.items()):
- yield cpatt % (attr_name, attr_value)
- yield epatt
-
- # write edge attributes
- for head in sorted(self.edges):
- for tail in sorted(self.edges[head]):
- if self.type == 'digraph':
- yield '\t"%s" -> "%s" [' % (head, tail)
- else:
- yield '\t"%s" -- "%s" [' % (head, tail)
- for attr_name, attr_value in \
- sorted(self.edges[head][tail].items()):
- yield cpatt % (attr_name, attr_value)
- yield epatt
-
- # finish file
- yield '}\n'
-
- def __iter__(self):
- return self.iterdot()
-
- def save_dot(self, file_name=None):
- '''
- Saves the current graph representation into a file
- '''
-
- if not file_name:
- warnings.warn(DeprecationWarning, "always pass a file_name")
- file_name = self.temp_dot
-
- with open(file_name, "w") as fp:
- for chunk in self.iterdot():
- fp.write(chunk)
-
- def save_img(self, file_name=None, file_type="gif", mode='dot'):
- '''
- Saves the dot file as an image file
- '''
-
- if not file_name:
- warnings.warn(DeprecationWarning, "always pass a file_name")
- file_name = "out"
-
- if mode == 'neato':
- self.save_dot(self.temp_neo)
- neato_cmd = "%s -o %s %s" % (
- self.neato, self.temp_dot, self.temp_neo)
- os.system(neato_cmd)
- plot_cmd = self.dot
- else:
- self.save_dot(self.temp_dot)
- plot_cmd = self.dot
-
- file_name = "%s.%s" % (file_name, file_type)
- create_cmd = "%s -T%s %s -o %s" % (
- plot_cmd, file_type, self.temp_dot, file_name)
- os.system(create_cmd)
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/Graph.py b/app/venv/lib/python3.6/site-packages/altgraph/Graph.py
deleted file mode 100644
index fc4f7e9..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph/Graph.py
+++ /dev/null
@@ -1,680 +0,0 @@
-"""
-altgraph.Graph - Base Graph class
-=================================
-
-..
- #--Version 2.1
- #--Bob Ippolito October, 2004
-
- #--Version 2.0
- #--Istvan Albert June, 2004
-
- #--Version 1.0
- #--Nathan Denny, May 27, 1999
-"""
-
-from altgraph import GraphError
-from collections import deque
-
-
-class Graph(object):
- """
- The Graph class represents a directed graph with *N* nodes and *E* edges.
-
- Naming conventions:
-
- - the prefixes such as *out*, *inc* and *all* will refer to methods
- that operate on the outgoing, incoming or all edges of that node.
-
- For example: :py:meth:`inc_degree` will refer to the degree of the node
- computed over the incoming edges (the number of neighbours linking to
- the node).
-
- - the prefixes such as *forw* and *back* will refer to the
- orientation of the edges used in the method with respect to the node.
-
- For example: :py:meth:`forw_bfs` will start at the node then use the
- outgoing edges to traverse the graph (goes forward).
- """
-
- def __init__(self, edges=None):
- """
- Initialization
- """
-
- self.next_edge = 0
- self.nodes, self.edges = {}, {}
- self.hidden_edges, self.hidden_nodes = {}, {}
-
- if edges is not None:
- for item in edges:
- if len(item) == 2:
- head, tail = item
- self.add_edge(head, tail)
- elif len(item) == 3:
- head, tail, data = item
- self.add_edge(head, tail, data)
- else:
- raise GraphError("Cannot create edge from %s" % (item,))
-
- def __repr__(self):
- return '' % (
- self.number_of_nodes(), self.number_of_edges())
-
- def add_node(self, node, node_data=None):
- """
- Adds a new node to the graph. Arbitrary data can be attached to the
- node via the node_data parameter. Adding the same node twice will be
- silently ignored.
-
- The node must be a hashable value.
- """
- #
- # the nodes will contain tuples that will store incoming edges,
- # outgoing edges and data
- #
- # index 0 -> incoming edges
- # index 1 -> outgoing edges
-
- if node in self.hidden_nodes:
- # Node is present, but hidden
- return
-
- if node not in self.nodes:
- self.nodes[node] = ([], [], node_data)
-
- def add_edge(self, head_id, tail_id, edge_data=1, create_nodes=True):
- """
- Adds a directed edge going from head_id to tail_id.
- Arbitrary data can be attached to the edge via edge_data.
- It may create the nodes if adding edges between nonexisting ones.
-
- :param head_id: head node
- :param tail_id: tail node
- :param edge_data: (optional) data attached to the edge
- :param create_nodes: (optional) creates the head_id or tail_id
- node in case they did not exist
- """
- # shorcut
- edge = self.next_edge
-
- # add nodes if on automatic node creation
- if create_nodes:
- self.add_node(head_id)
- self.add_node(tail_id)
-
- # update the corresponding incoming and outgoing lists in the nodes
- # index 0 -> incoming edges
- # index 1 -> outgoing edges
-
- try:
- self.nodes[tail_id][0].append(edge)
- self.nodes[head_id][1].append(edge)
- except KeyError:
- raise GraphError('Invalid nodes %s -> %s' % (head_id, tail_id))
-
- # store edge information
- self.edges[edge] = (head_id, tail_id, edge_data)
-
- self.next_edge += 1
-
- def hide_edge(self, edge):
- """
- Hides an edge from the graph. The edge may be unhidden at some later
- time.
- """
- try:
- head_id, tail_id, edge_data = \
- self.hidden_edges[edge] = self.edges[edge]
- self.nodes[tail_id][0].remove(edge)
- self.nodes[head_id][1].remove(edge)
- del self.edges[edge]
- except KeyError:
- raise GraphError('Invalid edge %s' % edge)
-
- def hide_node(self, node):
- """
- Hides a node from the graph. The incoming and outgoing edges of the
- node will also be hidden. The node may be unhidden at some later time.
- """
- try:
- all_edges = self.all_edges(node)
- self.hidden_nodes[node] = (self.nodes[node], all_edges)
- for edge in all_edges:
- self.hide_edge(edge)
- del self.nodes[node]
- except KeyError:
- raise GraphError('Invalid node %s' % node)
-
- def restore_node(self, node):
- """
- Restores a previously hidden node back into the graph and restores
- all of its incoming and outgoing edges.
- """
- try:
- self.nodes[node], all_edges = self.hidden_nodes[node]
- for edge in all_edges:
- self.restore_edge(edge)
- del self.hidden_nodes[node]
- except KeyError:
- raise GraphError('Invalid node %s' % node)
-
- def restore_edge(self, edge):
- """
- Restores a previously hidden edge back into the graph.
- """
- try:
- head_id, tail_id, data = self.hidden_edges[edge]
- self.nodes[tail_id][0].append(edge)
- self.nodes[head_id][1].append(edge)
- self.edges[edge] = head_id, tail_id, data
- del self.hidden_edges[edge]
- except KeyError:
- raise GraphError('Invalid edge %s' % edge)
-
- def restore_all_edges(self):
- """
- Restores all hidden edges.
- """
- for edge in list(self.hidden_edges.keys()):
- try:
- self.restore_edge(edge)
- except GraphError:
- pass
-
- def restore_all_nodes(self):
- """
- Restores all hidden nodes.
- """
- for node in list(self.hidden_nodes.keys()):
- self.restore_node(node)
-
- def __contains__(self, node):
- """
- Test whether a node is in the graph
- """
- return node in self.nodes
-
- def edge_by_id(self, edge):
- """
- Returns the edge that connects the head_id and tail_id nodes
- """
- try:
- head, tail, data = self.edges[edge]
- except KeyError:
- head, tail = None, None
- raise GraphError('Invalid edge %s' % edge)
-
- return (head, tail)
-
- def edge_by_node(self, head, tail):
- """
- Returns the edge that connects the head_id and tail_id nodes
- """
- for edge in self.out_edges(head):
- if self.tail(edge) == tail:
- return edge
- return None
-
- def number_of_nodes(self):
- """
- Returns the number of nodes
- """
- return len(self.nodes)
-
- def number_of_edges(self):
- """
- Returns the number of edges
- """
- return len(self.edges)
-
- def __iter__(self):
- """
- Iterates over all nodes in the graph
- """
- return iter(self.nodes)
-
- def node_list(self):
- """
- Return a list of the node ids for all visible nodes in the graph.
- """
- return list(self.nodes.keys())
-
- def edge_list(self):
- """
- Returns an iterator for all visible nodes in the graph.
- """
- return list(self.edges.keys())
-
- def number_of_hidden_edges(self):
- """
- Returns the number of hidden edges
- """
- return len(self.hidden_edges)
-
- def number_of_hidden_nodes(self):
- """
- Returns the number of hidden nodes
- """
- return len(self.hidden_nodes)
-
- def hidden_node_list(self):
- """
- Returns the list with the hidden nodes
- """
- return list(self.hidden_nodes.keys())
-
- def hidden_edge_list(self):
- """
- Returns a list with the hidden edges
- """
- return list(self.hidden_edges.keys())
-
- def describe_node(self, node):
- """
- return node, node data, outgoing edges, incoming edges for node
- """
- incoming, outgoing, data = self.nodes[node]
- return node, data, outgoing, incoming
-
- def describe_edge(self, edge):
- """
- return edge, edge data, head, tail for edge
- """
- head, tail, data = self.edges[edge]
- return edge, data, head, tail
-
- def node_data(self, node):
- """
- Returns the data associated with a node
- """
- return self.nodes[node][2]
-
- def edge_data(self, edge):
- """
- Returns the data associated with an edge
- """
- return self.edges[edge][2]
-
- def update_edge_data(self, edge, edge_data):
- """
- Replace the edge data for a specific edge
- """
- self.edges[edge] = self.edges[edge][0:2] + (edge_data,)
-
- def head(self, edge):
- """
- Returns the node of the head of the edge.
- """
- return self.edges[edge][0]
-
- def tail(self, edge):
- """
- Returns node of the tail of the edge.
- """
- return self.edges[edge][1]
-
- def out_nbrs(self, node):
- """
- List of nodes connected by outgoing edges
- """
- return [self.tail(n) for n in self.out_edges(node)]
-
- def inc_nbrs(self, node):
- """
- List of nodes connected by incoming edges
- """
- return [self.head(n) for n in self.inc_edges(node)]
-
- def all_nbrs(self, node):
- """
- List of nodes connected by incoming and outgoing edges
- """
- return list(dict.fromkeys(self.inc_nbrs(node) + self.out_nbrs(node)))
-
- def out_edges(self, node):
- """
- Returns a list of the outgoing edges
- """
- try:
- return list(self.nodes[node][1])
- except KeyError:
- raise GraphError('Invalid node %s' % node)
-
- def inc_edges(self, node):
- """
- Returns a list of the incoming edges
- """
- try:
- return list(self.nodes[node][0])
- except KeyError:
- raise GraphError('Invalid node %s' % node)
-
- def all_edges(self, node):
- """
- Returns a list of incoming and outging edges.
- """
- return set(self.inc_edges(node) + self.out_edges(node))
-
- def out_degree(self, node):
- """
- Returns the number of outgoing edges
- """
- return len(self.out_edges(node))
-
- def inc_degree(self, node):
- """
- Returns the number of incoming edges
- """
- return len(self.inc_edges(node))
-
- def all_degree(self, node):
- """
- The total degree of a node
- """
- return self.inc_degree(node) + self.out_degree(node)
-
- def _topo_sort(self, forward=True):
- """
- Topological sort.
-
- Returns a list of nodes where the successors (based on outgoing and
- incoming edges selected by the forward parameter) of any given node
- appear in the sequence after that node.
- """
- topo_list = []
- queue = deque()
- indeg = {}
-
- # select the operation that will be performed
- if forward:
- get_edges = self.out_edges
- get_degree = self.inc_degree
- get_next = self.tail
- else:
- get_edges = self.inc_edges
- get_degree = self.out_degree
- get_next = self.head
-
- for node in self.node_list():
- degree = get_degree(node)
- if degree:
- indeg[node] = degree
- else:
- queue.append(node)
-
- while queue:
- curr_node = queue.popleft()
- topo_list.append(curr_node)
- for edge in get_edges(curr_node):
- tail_id = get_next(edge)
- if tail_id in indeg:
- indeg[tail_id] -= 1
- if indeg[tail_id] == 0:
- queue.append(tail_id)
-
- if len(topo_list) == len(self.node_list()):
- valid = True
- else:
- # the graph has cycles, invalid topological sort
- valid = False
-
- return (valid, topo_list)
-
- def forw_topo_sort(self):
- """
- Topological sort.
-
- Returns a list of nodes where the successors (based on outgoing edges)
- of any given node appear in the sequence after that node.
- """
- return self._topo_sort(forward=True)
-
- def back_topo_sort(self):
- """
- Reverse topological sort.
-
- Returns a list of nodes where the successors (based on incoming edges)
- of any given node appear in the sequence after that node.
- """
- return self._topo_sort(forward=False)
-
- def _bfs_subgraph(self, start_id, forward=True):
- """
- Private method creates a subgraph in a bfs order.
-
- The forward parameter specifies whether it is a forward or backward
- traversal.
- """
- if forward:
- get_bfs = self.forw_bfs
- get_nbrs = self.out_nbrs
- else:
- get_bfs = self.back_bfs
- get_nbrs = self.inc_nbrs
-
- g = Graph()
- bfs_list = get_bfs(start_id)
- for node in bfs_list:
- g.add_node(node)
-
- for node in bfs_list:
- for nbr_id in get_nbrs(node):
- if forward:
- g.add_edge(node, nbr_id)
- else:
- g.add_edge(nbr_id, node)
-
- return g
-
- def forw_bfs_subgraph(self, start_id):
- """
- Creates and returns a subgraph consisting of the breadth first
- reachable nodes based on their outgoing edges.
- """
- return self._bfs_subgraph(start_id, forward=True)
-
- def back_bfs_subgraph(self, start_id):
- """
- Creates and returns a subgraph consisting of the breadth first
- reachable nodes based on the incoming edges.
- """
- return self._bfs_subgraph(start_id, forward=False)
-
- def iterdfs(self, start, end=None, forward=True):
- """
- Collecting nodes in some depth first traversal.
-
- The forward parameter specifies whether it is a forward or backward
- traversal.
- """
- visited, stack = set([start]), deque([start])
-
- if forward:
- get_edges = self.out_edges
- get_next = self.tail
- else:
- get_edges = self.inc_edges
- get_next = self.head
-
- while stack:
- curr_node = stack.pop()
- yield curr_node
- if curr_node == end:
- break
- for edge in sorted(get_edges(curr_node)):
- tail = get_next(edge)
- if tail not in visited:
- visited.add(tail)
- stack.append(tail)
-
- def iterdata(self, start, end=None, forward=True, condition=None):
- """
- Perform a depth-first walk of the graph (as ``iterdfs``)
- and yield the item data of every node where condition matches. The
- condition callback is only called when node_data is not None.
- """
-
- visited, stack = set([start]), deque([start])
-
- if forward:
- get_edges = self.out_edges
- get_next = self.tail
- else:
- get_edges = self.inc_edges
- get_next = self.head
-
- get_data = self.node_data
-
- while stack:
- curr_node = stack.pop()
- curr_data = get_data(curr_node)
- if curr_data is not None:
- if condition is not None and not condition(curr_data):
- continue
- yield curr_data
- if curr_node == end:
- break
- for edge in get_edges(curr_node):
- tail = get_next(edge)
- if tail not in visited:
- visited.add(tail)
- stack.append(tail)
-
- def _iterbfs(self, start, end=None, forward=True):
- """
- The forward parameter specifies whether it is a forward or backward
- traversal. Returns a list of tuples where the first value is the hop
- value the second value is the node id.
- """
- queue, visited = deque([(start, 0)]), set([start])
-
- # the direction of the bfs depends on the edges that are sampled
- if forward:
- get_edges = self.out_edges
- get_next = self.tail
- else:
- get_edges = self.inc_edges
- get_next = self.head
-
- while queue:
- curr_node, curr_step = queue.popleft()
- yield (curr_node, curr_step)
- if curr_node == end:
- break
- for edge in get_edges(curr_node):
- tail = get_next(edge)
- if tail not in visited:
- visited.add(tail)
- queue.append((tail, curr_step + 1))
-
- def forw_bfs(self, start, end=None):
- """
- Returns a list of nodes in some forward BFS order.
-
- Starting from the start node the breadth first search proceeds along
- outgoing edges.
- """
- return [node for node, step in self._iterbfs(start, end, forward=True)]
-
- def back_bfs(self, start, end=None):
- """
- Returns a list of nodes in some backward BFS order.
-
- Starting from the start node the breadth first search proceeds along
- incoming edges.
- """
- return [node for node, _ in self._iterbfs(start, end, forward=False)]
-
- def forw_dfs(self, start, end=None):
- """
- Returns a list of nodes in some forward DFS order.
-
- Starting with the start node the depth first search proceeds along
- outgoing edges.
- """
- return list(self.iterdfs(start, end, forward=True))
-
- def back_dfs(self, start, end=None):
- """
- Returns a list of nodes in some backward DFS order.
-
- Starting from the start node the depth first search proceeds along
- incoming edges.
- """
- return list(self.iterdfs(start, end, forward=False))
-
- def connected(self):
- """
- Returns :py:data:`True` if the graph's every node can be reached from
- every other node.
- """
- node_list = self.node_list()
- for node in node_list:
- bfs_list = self.forw_bfs(node)
- if len(bfs_list) != len(node_list):
- return False
- return True
-
- def clust_coef(self, node):
- """
- Computes and returns the local clustering coefficient of node.
-
- The local cluster coefficient is proportion of the actual number of
- edges between neighbours of node and the maximum number of edges
- between those neighbours.
-
- See "Local Clustering Coefficient" on
-
- for a formal definition.
- """
- num = 0
- nbr_set = set(self.out_nbrs(node))
-
- if node in nbr_set:
- nbr_set.remove(node) # loop defense
-
- for nbr in nbr_set:
- sec_set = set(self.out_nbrs(nbr))
- if nbr in sec_set:
- sec_set.remove(nbr) # loop defense
- num += len(nbr_set & sec_set)
-
- nbr_num = len(nbr_set)
- if nbr_num:
- clust_coef = float(num) / (nbr_num * (nbr_num - 1))
- else:
- clust_coef = 0.0
- return clust_coef
-
- def get_hops(self, start, end=None, forward=True):
- """
- Computes the hop distance to all nodes centered around a node.
-
- First order neighbours are at hop 1, their neigbours are at hop 2 etc.
- Uses :py:meth:`forw_bfs` or :py:meth:`back_bfs` depending on the value
- of the forward parameter. If the distance between all neighbouring
- nodes is 1 the hop number corresponds to the shortest distance between
- the nodes.
-
- :param start: the starting node
- :param end: ending node (optional). When not specified will search the
- whole graph.
- :param forward: directionality parameter (optional).
- If C{True} (default) it uses L{forw_bfs} otherwise L{back_bfs}.
- :return: returns a list of tuples where each tuple contains the
- node and the hop.
-
- Typical usage::
-
- >>> print (graph.get_hops(1, 8))
- >>> [(1, 0), (2, 1), (3, 1), (4, 2), (5, 3), (7, 4), (8, 5)]
- # node 1 is at 0 hops
- # node 2 is at 1 hop
- # ...
- # node 8 is at 5 hops
- """
- if forward:
- return list(self._iterbfs(start=start, end=end, forward=True))
- else:
- return list(self._iterbfs(start=start, end=end, forward=False))
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/GraphAlgo.py b/app/venv/lib/python3.6/site-packages/altgraph/GraphAlgo.py
deleted file mode 100644
index b51e536..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph/GraphAlgo.py
+++ /dev/null
@@ -1,166 +0,0 @@
-'''
-altgraph.GraphAlgo - Graph algorithms
-=====================================
-'''
-from altgraph import GraphError
-
-
-def dijkstra(graph, start, end=None):
- """
- Dijkstra's algorithm for shortest paths
-
- `David Eppstein, UC Irvine, 4 April 2002
- `_
-
- `Python Cookbook Recipe
- `_
-
- Find shortest paths from the start node to all nodes nearer than or
- equal to the end node.
-
- Dijkstra's algorithm is only guaranteed to work correctly when all edge
- lengths are positive. This code does not verify this property for all
- edges (only the edges examined until the end vertex is reached), but will
- correctly compute shortest paths even for some graphs with negative edges,
- and will raise an exception if it discovers that a negative edge has
- caused it to make a mistake.
-
- Adapted to altgraph by Istvan Albert, Pennsylvania State University -
- June, 9 2004
- """
- D = {} # dictionary of final distances
- P = {} # dictionary of predecessors
- Q = _priorityDictionary() # estimated distances of non-final vertices
- Q[start] = 0
-
- for v in Q:
- D[v] = Q[v]
- if v == end:
- break
-
- for w in graph.out_nbrs(v):
- edge_id = graph.edge_by_node(v, w)
- vwLength = D[v] + graph.edge_data(edge_id)
- if w in D:
- if vwLength < D[w]:
- raise GraphError(
- "Dijkstra: found better path to already-final vertex")
- elif w not in Q or vwLength < Q[w]:
- Q[w] = vwLength
- P[w] = v
-
- return (D, P)
-
-
-def shortest_path(graph, start, end):
- """
- Find a single shortest path from the *start* node to the *end* node.
- The input has the same conventions as dijkstra(). The output is a list of
- the nodes in order along the shortest path.
-
- **Note that the distances must be stored in the edge data as numeric data**
- """
-
- D, P = dijkstra(graph, start, end)
- Path = []
- while 1:
- Path.append(end)
- if end == start:
- break
- end = P[end]
- Path.reverse()
- return Path
-
-
-#
-# Utility classes and functions
-#
-class _priorityDictionary(dict):
- '''
- Priority dictionary using binary heaps (internal use only)
-
- David Eppstein, UC Irvine, 8 Mar 2002
-
- Implements a data structure that acts almost like a dictionary, with
- two modifications:
-
- 1. D.smallest() returns the value x minimizing D[x]. For this to
- work correctly, all values D[x] stored in the dictionary must be
- comparable.
-
- 2. iterating "for x in D" finds and removes the items from D in sorted
- order. Each item is not removed until the next item is requested,
- so D[x] will still return a useful value until the next iteration
- of the for-loop. Each operation takes logarithmic amortized time.
- '''
-
- def __init__(self):
- '''
- Initialize priorityDictionary by creating binary heap of pairs
- (value,key). Note that changing or removing a dict entry will not
- remove the old pair from the heap until it is found by smallest()
- or until the heap is rebuilt.
- '''
- self.__heap = []
- dict.__init__(self)
-
- def smallest(self):
- '''
- Find smallest item after removing deleted items from front of heap.
- '''
- if len(self) == 0:
- raise IndexError("smallest of empty priorityDictionary")
- heap = self.__heap
- while heap[0][1] not in self or self[heap[0][1]] != heap[0][0]:
- lastItem = heap.pop()
- insertionPoint = 0
- while 1:
- smallChild = 2*insertionPoint+1
- if smallChild+1 < len(heap) and \
- heap[smallChild] > heap[smallChild+1]:
- smallChild += 1
- if smallChild >= len(heap) or lastItem <= heap[smallChild]:
- heap[insertionPoint] = lastItem
- break
- heap[insertionPoint] = heap[smallChild]
- insertionPoint = smallChild
- return heap[0][1]
-
- def __iter__(self):
- '''
- Create destructive sorted iterator of priorityDictionary.
- '''
- def iterfn():
- while len(self) > 0:
- x = self.smallest()
- yield x
- del self[x]
- return iterfn()
-
- def __setitem__(self, key, val):
- '''
- Change value stored in dictionary and add corresponding pair to heap.
- Rebuilds the heap if the number of deleted items gets large, to avoid
- memory leakage.
- '''
- dict.__setitem__(self, key, val)
- heap = self.__heap
- if len(heap) > 2 * len(self):
- self.__heap = [(v, k) for k, v in self.items()]
- self.__heap.sort()
- else:
- newPair = (val, key)
- insertionPoint = len(heap)
- heap.append(None)
- while insertionPoint > 0 and newPair < heap[(insertionPoint-1)//2]:
- heap[insertionPoint] = heap[(insertionPoint-1)//2]
- insertionPoint = (insertionPoint-1)//2
- heap[insertionPoint] = newPair
-
- def setdefault(self, key, val):
- '''
- Reimplement setdefault to pass through our customized __setitem__.
- '''
- if key not in self:
- self[key] = val
- return self[key]
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/GraphStat.py b/app/venv/lib/python3.6/site-packages/altgraph/GraphStat.py
deleted file mode 100644
index 003b716..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph/GraphStat.py
+++ /dev/null
@@ -1,73 +0,0 @@
-'''
-altgraph.GraphStat - Functions providing various graph statistics
-=================================================================
-'''
-
-
-def degree_dist(graph, limits=(0, 0), bin_num=10, mode='out'):
- '''
- Computes the degree distribution for a graph.
-
- Returns a list of tuples where the first element of the tuple is the
- center of the bin representing a range of degrees and the second element
- of the tuple are the number of nodes with the degree falling in the range.
-
- Example::
-
- ....
- '''
-
- deg = []
- if mode == 'inc':
- get_deg = graph.inc_degree
- else:
- get_deg = graph.out_degree
-
- for node in graph:
- deg.append(get_deg(node))
-
- if not deg:
- return []
-
- results = _binning(values=deg, limits=limits, bin_num=bin_num)
-
- return results
-
-
-_EPS = 1.0/(2.0**32)
-
-
-def _binning(values, limits=(0, 0), bin_num=10):
- '''
- Bins data that falls between certain limits, if the limits are (0, 0) the
- minimum and maximum values are used.
-
- Returns a list of tuples where the first element of the tuple is the
- center of the bin and the second element of the tuple are the counts.
- '''
- if limits == (0, 0):
- min_val, max_val = min(values) - _EPS, max(values) + _EPS
- else:
- min_val, max_val = limits
-
- # get bin size
- bin_size = (max_val - min_val)/float(bin_num)
- bins = [0] * (bin_num)
-
- # will ignore these outliers for now
- for value in values:
- try:
- if (value - min_val) >= 0:
- index = int((value - min_val)/float(bin_size))
- bins[index] += 1
- except IndexError:
- pass
-
- # make it ready for an x,y plot
- result = []
- center = (bin_size/2) + min_val
- for i, y in enumerate(bins):
- x = center + bin_size * i
- result.append((x, y))
-
- return result
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/GraphUtil.py b/app/venv/lib/python3.6/site-packages/altgraph/GraphUtil.py
deleted file mode 100644
index 500a74b..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph/GraphUtil.py
+++ /dev/null
@@ -1,144 +0,0 @@
-'''
-altgraph.GraphUtil - Utility classes and functions
-==================================================
-'''
-
-import random
-from collections import deque
-from altgraph import Graph
-from altgraph import GraphError
-
-
-def generate_random_graph(
- node_num, edge_num, self_loops=False, multi_edges=False):
- '''
- Generates and returns a :py:class:`~altgraph.Graph.Graph` instance with
- *node_num* nodes randomly connected by *edge_num* edges.
- '''
- g = Graph.Graph()
-
- if not multi_edges:
- if self_loops:
- max_edges = node_num * node_num
- else:
- max_edges = node_num * (node_num-1)
-
- if edge_num > max_edges:
- raise GraphError(
- "inconsistent arguments to 'generate_random_graph'")
-
- nodes = range(node_num)
-
- for node in nodes:
- g.add_node(node)
-
- while 1:
- head = random.choice(nodes)
- tail = random.choice(nodes)
-
- # loop defense
- if head == tail and not self_loops:
- continue
-
- # multiple edge defense
- if g.edge_by_node(head, tail) is not None and not multi_edges:
- continue
-
- # add the edge
- g.add_edge(head, tail)
- if g.number_of_edges() >= edge_num:
- break
-
- return g
-
-
-def generate_scale_free_graph(
- steps, growth_num, self_loops=False, multi_edges=False):
- '''
- Generates and returns a :py:class:`~altgraph.Graph.Graph` instance that
- will have *steps* \* *growth_num* nodes and a scale free (powerlaw)
- connectivity. Starting with a fully connected graph with *growth_num*
- nodes at every step *growth_num* nodes are added to the graph and are
- connected to existing nodes with a probability proportional to the degree
- of these existing nodes.
- '''
- # FIXME: The code doesn't seem to do what the documentation claims.
- graph = Graph.Graph()
-
- # initialize the graph
- store = []
- for i in range(growth_num):
- for j in range(i + 1, growth_num):
- store.append(i)
- store.append(j)
- graph.add_edge(i, j)
-
- # generate
- for node in range(growth_num, steps * growth_num):
- graph.add_node(node)
- while graph.out_degree(node) < growth_num:
- nbr = random.choice(store)
-
- # loop defense
- if node == nbr and not self_loops:
- continue
-
- # multi edge defense
- if graph.edge_by_node(node, nbr) and not multi_edges:
- continue
-
- graph.add_edge(node, nbr)
-
- for nbr in graph.out_nbrs(node):
- store.append(node)
- store.append(nbr)
-
- return graph
-
-
-def filter_stack(graph, head, filters):
- """
- Perform a walk in a depth-first order starting
- at *head*.
-
- Returns (visited, removes, orphans).
-
- * visited: the set of visited nodes
- * removes: the list of nodes where the node
- data does not all *filters*
- * orphans: tuples of (last_good, node),
- where node is not in removes, is directly
- reachable from a node in *removes* and
- *last_good* is the closest upstream node that is not
- in *removes*.
- """
-
- visited, removes, orphans = set([head]), set(), set()
- stack = deque([(head, head)])
- get_data = graph.node_data
- get_edges = graph.out_edges
- get_tail = graph.tail
-
- while stack:
- last_good, node = stack.pop()
- data = get_data(node)
- if data is not None:
- for filtfunc in filters:
- if not filtfunc(data):
- removes.add(node)
- break
- else:
- last_good = node
- for edge in get_edges(node):
- tail = get_tail(edge)
- if last_good is not node:
- orphans.add((last_good, tail))
- if tail not in visited:
- visited.add(tail)
- stack.append((last_good, tail))
-
- orphans = [
- (lg, tl)
- for (lg, tl) in orphans if tl not in removes]
-
- return visited, removes, orphans
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/ObjectGraph.py b/app/venv/lib/python3.6/site-packages/altgraph/ObjectGraph.py
deleted file mode 100644
index f3d6fa1..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph/ObjectGraph.py
+++ /dev/null
@@ -1,212 +0,0 @@
-"""
-altgraph.ObjectGraph - Graph of objects with an identifier
-==========================================================
-
-A graph of objects that have a "graphident" attribute.
-graphident is the key for the object in the graph
-"""
-
-from altgraph import GraphError
-from altgraph.Graph import Graph
-from altgraph.GraphUtil import filter_stack
-
-
-class ObjectGraph(object):
- """
- A graph of objects that have a "graphident" attribute.
- graphident is the key for the object in the graph
- """
-
- def __init__(self, graph=None, debug=0):
- if graph is None:
- graph = Graph()
- self.graphident = self
- self.graph = graph
- self.debug = debug
- self.indent = 0
- graph.add_node(self, None)
-
- def __repr__(self):
- return '<%s>' % (type(self).__name__,)
-
- def flatten(self, condition=None, start=None):
- """
- Iterate over the subgraph that is entirely reachable by condition
- starting from the given start node or the ObjectGraph root
- """
- if start is None:
- start = self
- start = self.getRawIdent(start)
- return self.graph.iterdata(start=start, condition=condition)
-
- def nodes(self):
- for ident in self.graph:
- node = self.graph.node_data(ident)
- if node is not None:
- yield self.graph.node_data(ident)
-
- def get_edges(self, node):
- if node is None:
- node = self
- start = self.getRawIdent(node)
- _, _, outraw, incraw = self.graph.describe_node(start)
-
- def iter_edges(lst, n):
- seen = set()
- for tpl in (self.graph.describe_edge(e) for e in lst):
- ident = tpl[n]
- if ident not in seen:
- yield self.findNode(ident)
- seen.add(ident)
- return iter_edges(outraw, 3), iter_edges(incraw, 2)
-
- def edgeData(self, fromNode, toNode):
- if fromNode is None:
- fromNode = self
- start = self.getRawIdent(fromNode)
- stop = self.getRawIdent(toNode)
- edge = self.graph.edge_by_node(start, stop)
- return self.graph.edge_data(edge)
-
- def updateEdgeData(self, fromNode, toNode, edgeData):
- if fromNode is None:
- fromNode = self
- start = self.getRawIdent(fromNode)
- stop = self.getRawIdent(toNode)
- edge = self.graph.edge_by_node(start, stop)
- self.graph.update_edge_data(edge, edgeData)
-
- def filterStack(self, filters):
- """
- Filter the ObjectGraph in-place by removing all edges to nodes that
- do not match every filter in the given filter list
-
- Returns a tuple containing the number of:
- (nodes_visited, nodes_removed, nodes_orphaned)
- """
- visited, removes, orphans = filter_stack(self.graph, self, filters)
-
- for last_good, tail in orphans:
- self.graph.add_edge(last_good, tail, edge_data='orphan')
-
- for node in removes:
- self.graph.hide_node(node)
-
- return len(visited)-1, len(removes), len(orphans)
-
- def removeNode(self, node):
- """
- Remove the given node from the graph if it exists
- """
- ident = self.getIdent(node)
- if ident is not None:
- self.graph.hide_node(ident)
-
- def removeReference(self, fromnode, tonode):
- """
- Remove all edges from fromnode to tonode
- """
- if fromnode is None:
- fromnode = self
- fromident = self.getIdent(fromnode)
- toident = self.getIdent(tonode)
- if fromident is not None and toident is not None:
- while True:
- edge = self.graph.edge_by_node(fromident, toident)
- if edge is None:
- break
- self.graph.hide_edge(edge)
-
- def getIdent(self, node):
- """
- Get the graph identifier for a node
- """
- ident = self.getRawIdent(node)
- if ident is not None:
- return ident
- node = self.findNode(node)
- if node is None:
- return None
- return node.graphident
-
- def getRawIdent(self, node):
- """
- Get the identifier for a node object
- """
- if node is self:
- return node
- ident = getattr(node, 'graphident', None)
- return ident
-
- def __contains__(self, node):
- return self.findNode(node) is not None
-
- def findNode(self, node):
- """
- Find the node on the graph
- """
- ident = self.getRawIdent(node)
- if ident is None:
- ident = node
- try:
- return self.graph.node_data(ident)
- except KeyError:
- return None
-
- def addNode(self, node):
- """
- Add a node to the graph referenced by the root
- """
- self.msg(4, "addNode", node)
-
- try:
- self.graph.restore_node(node.graphident)
- except GraphError:
- self.graph.add_node(node.graphident, node)
-
- def createReference(self, fromnode, tonode, edge_data=None):
- """
- Create a reference from fromnode to tonode
- """
- if fromnode is None:
- fromnode = self
- fromident, toident = self.getIdent(fromnode), self.getIdent(tonode)
- if fromident is None or toident is None:
- return
- self.msg(4, "createReference", fromnode, tonode, edge_data)
- self.graph.add_edge(fromident, toident, edge_data=edge_data)
-
- def createNode(self, cls, name, *args, **kw):
- """
- Add a node of type cls to the graph if it does not already exist
- by the given name
- """
- m = self.findNode(name)
- if m is None:
- m = cls(name, *args, **kw)
- self.addNode(m)
- return m
-
- def msg(self, level, s, *args):
- """
- Print a debug message with the given level
- """
- if s and level <= self.debug:
- print("%s%s %s" % (
- " " * self.indent, s, ' '.join(map(repr, args))))
-
- def msgin(self, level, s, *args):
- """
- Print a debug message and indent
- """
- if level <= self.debug:
- self.msg(level, s, *args)
- self.indent = self.indent + 1
-
- def msgout(self, level, s, *args):
- """
- Dedent and print a debug message
- """
- if level <= self.debug:
- self.indent = self.indent - 1
- self.msg(level, s, *args)
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/__init__.py b/app/venv/lib/python3.6/site-packages/altgraph/__init__.py
deleted file mode 100644
index 289c640..0000000
--- a/app/venv/lib/python3.6/site-packages/altgraph/__init__.py
+++ /dev/null
@@ -1,147 +0,0 @@
-'''
-altgraph - a python graph library
-=================================
-
-altgraph is a fork of `graphlib `_ tailored
-to use newer Python 2.3+ features, including additional support used by the
-py2app suite (modulegraph and macholib, specifically).
-
-altgraph is a python based graph (network) representation and manipulation
-package. It has started out as an extension to the
-`graph_lib module
-`_
-written by Nathan Denny it has been significantly optimized and expanded.
-
-The :class:`altgraph.Graph.Graph` class is loosely modeled after the
-`LEDA `_
-(Library of Efficient Datatypes) representation. The library
-includes methods for constructing graphs, BFS and DFS traversals,
-topological sort, finding connected components, shortest paths as well as a
-number graph statistics functions. The library can also visualize graphs
-via `graphviz `_.
-
-The package contains the following modules:
-
- - the :py:mod:`altgraph.Graph` module contains the
- :class:`~altgraph.Graph.Graph` class that stores the graph data
-
- - the :py:mod:`altgraph.GraphAlgo` module implements graph algorithms
- operating on graphs (:py:class:`~altgraph.Graph.Graph`} instances)
-
- - the :py:mod:`altgraph.GraphStat` module contains functions for
- computing statistical measures on graphs
-
- - the :py:mod:`altgraph.GraphUtil` module contains functions for
- generating, reading and saving graphs
-
- - the :py:mod:`altgraph.Dot` module contains functions for displaying
- graphs via `graphviz `_
-
- - the :py:mod:`altgraph.ObjectGraph` module implements a graph of
- objects with a unique identifier
-
-Installation
-------------
-
-Download and unpack the archive then type::
-
- python setup.py install
-
-This will install the library in the default location. For instructions on
-how to customize the install procedure read the output of::
-
- python setup.py --help install
-
-To verify that the code works run the test suite::
-
- python setup.py test
-
-Example usage
--------------
-
-Lets assume that we want to analyze the graph below (links to the full picture)
-GRAPH_IMG. Our script then might look the following way::
-
- from altgraph import Graph, GraphAlgo, Dot
-
- # these are the edges
- edges = [ (1,2), (2,4), (1,3), (2,4), (3,4), (4,5), (6,5),
- (6,14), (14,15), (6, 15), (5,7), (7, 8), (7,13), (12,8),
- (8,13), (11,12), (11,9), (13,11), (9,13), (13,10) ]
-
- # creates the graph
- graph = Graph.Graph()
- for head, tail in edges:
- graph.add_edge(head, tail)
-
- # do a forward bfs from 1 at most to 20
- print(graph.forw_bfs(1))
-
-This will print the nodes in some breadth first order::
-
- [1, 2, 3, 4, 5, 7, 8, 13, 11, 10, 12, 9]
-
-If we wanted to get the hop-distance from node 1 to node 8
-we coud write::
-
- print(graph.get_hops(1, 8))
-
-This will print the following::
-
- [(1, 0), (2, 1), (3, 1), (4, 2), (5, 3), (7, 4), (8, 5)]
-
-Node 1 is at 0 hops since it is the starting node, nodes 2,3 are 1 hop away ...
-node 8 is 5 hops away. To find the shortest distance between two nodes you
-can use::
-
- print(GraphAlgo.shortest_path(graph, 1, 12))
-
-It will print the nodes on one (if there are more) the shortest paths::
-
- [1, 2, 4, 5, 7, 13, 11, 12]
-
-To display the graph we can use the GraphViz backend::
-
- dot = Dot.Dot(graph)
-
- # display the graph on the monitor
- dot.display()
-
- # save it in an image file
- dot.save_img(file_name='graph', file_type='gif')
-
-
-
-..
- @author: U{Istvan Albert}
-
- @license: MIT License
-
- Copyright (c) 2004 Istvan Albert unless otherwise noted.
-
- 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.
-
- 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.
- @requires: Python 2.3 or higher
-
- @newfield contributor: Contributors:
- @contributor: U{Reka Albert }
-
-'''
-import pkg_resources
-__version__ = pkg_resources.require('altgraph')[0].version
-
-
-class GraphError(ValueError):
- pass
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/Dot.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/Dot.cpython-36.pyc
deleted file mode 100644
index 9d839cc..0000000
Binary files a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/Dot.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/Graph.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/Graph.cpython-36.pyc
deleted file mode 100644
index 5f30903..0000000
Binary files a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/Graph.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/GraphAlgo.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/GraphAlgo.cpython-36.pyc
deleted file mode 100644
index 588448e..0000000
Binary files a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/GraphAlgo.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/GraphStat.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/GraphStat.cpython-36.pyc
deleted file mode 100644
index 2bd550a..0000000
Binary files a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/GraphStat.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/GraphUtil.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/GraphUtil.cpython-36.pyc
deleted file mode 100644
index 7c6a695..0000000
Binary files a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/GraphUtil.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/ObjectGraph.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/ObjectGraph.cpython-36.pyc
deleted file mode 100644
index 0945bf3..0000000
Binary files a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/ObjectGraph.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/__init__.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/__init__.cpython-36.pyc
deleted file mode 100644
index c0fdf6b..0000000
Binary files a/app/venv/lib/python3.6/site-packages/altgraph/__pycache__/__init__.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/easy_install.py b/app/venv/lib/python3.6/site-packages/easy_install.py
deleted file mode 100644
index d87e984..0000000
--- a/app/venv/lib/python3.6/site-packages/easy_install.py
+++ /dev/null
@@ -1,5 +0,0 @@
-"""Run the EasyInstall command"""
-
-if __name__ == '__main__':
- from setuptools.command.easy_install import main
- main()
diff --git a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/DESCRIPTION.rst b/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/DESCRIPTION.rst
deleted file mode 100644
index fa6343b..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/DESCRIPTION.rst
+++ /dev/null
@@ -1,344 +0,0 @@
-macholib can be used to analyze and edit Mach-O headers, the executable
-format used by Mac OS X.
-
-It's typically used as a dependency analysis tool, and also to rewrite dylib
-references in Mach-O headers to be @executable_path relative.
-
-Though this tool targets a platform specific file format, it is pure python
-code that is platform and endian independent.
-
-Project links
--------------
-
-* `Documentation `_
-
-* `Issue Tracker `_
-
-* `Repository `_
-
-
-Release history
-===============
-
-macholib 1.9
-------------
-
-Features:
-
-* Add definition for ``macholib.mach_o.reloc_type_generic``, which
- was used in code but never defined.
-
-* #22: Add LICENSE file
-
-* #23: Added "--help" option for "python -m macholib"
-
-* Added function ``macholib.MachO.lc_str_value`` which should
- help in decoding value of ``macholib.mach_o.lc_str``. Those
- values are offsets in the data of a load command, the function
- will return the actually value as a byte string.
-
- See also issue #21.
-
-Bug fixes:
-
-* Pull request #15: Fix typo in thread_command class
-
- Patch by user "phdphuc" on bitbucket.
-
-macholib 1.8
-------------
-
-* Use the same dependency walk logic as otool
-
- Patch by Taras Tsugrii
-
-* Added support for new load commands
-
- Patch by David Dorsey ,
- with enhancements by Ronald Oussoren.
-
-* Fix procesing DSYM file from XCODE 6.x
-
- Patch by HolmsBlazhey
-
-* MachOGraph.locate(): When calling dyld_find(), use kwarg 'loader_path', not 'loader'.
-
- Patch by Stuart Berg
-
-* Add fields to thread_command
-
- Patch by Asger Hautop Drewsen
-
-* Add missing ARM_V7S subtype.
-
- Patch by "NN"
-
-* Fix for SymbolTable
-
- Patch by Christian Klein
-
-* Use first Mach-O header as the default header
-
- Patch by Christian Klein
-
-* Issue #17: add LC_LOAD_UPWARD_DYLIB to _RELOCATABLE set
-
-* Issue #16: macholib "hangs" on invalid input
-
- Due to the use of the range function on untrusted input
- the python process could hang when reading invalid input, due
- to trying to construct an enormous list.
-
-* Issue #18: Bad version parsing in macho_version_helper
-
- The order of subfields in ``mach_version_helper`` was reversed from
- reality.
-
-* Issue #19: Fix aligment issue that prevented code signing
-
- Patch by Brendan Simon
-
-* Fix issue #14: Can't pass endian argument to p_uint64.from_str
-
-
-macholib 1.7
-------------
-
-* Added support for ARM64, LC_ENCRYPTION_INFO_64 and LC_LINKER_OPTION
-
- Patch by Matthias Ringwald.
-
-* Load commands now have a "describe" method that returns more information
- about the command.
-
- Patch by David Dorsey.
-
-* The MAGIC value in the header was always represented in the native
- byte order, instead of as the value read from the binary.
-
- Patch by David Dorsey.
-
-* Added various new constants to "macholib.mach_o".
-
- Patch by David Dorsey.
-
-macholib 1.6.1
---------------
-
-* ?
-
-macholib 1.6
-------------
-
-* Add support for '@loader_path' link command in
- macholib.dyld:
-
- - Added function ``macholib.dyld.dyld_loader_search``
-
- - This function is used by ``macholib.dyld.dyld_find``,
- and that function now has an new (optional) argument
- with the path to the loader.
-
-* Also add support for '@loader_path' to macholib.MachoGraph,
- using the newly added '@loader_path' support in the
- dyld module.
-
- Due to this suppport the *macho_standalone* tool can
- now rewrite binaries that contain an '@loader_path' load
- command.
-
-
-macholib 1.5.2
---------------
-
-* Issue #93: Show the name of the affected file in the exception message
- for Mach-O headers that are too large to relocate.
-
-
-macholib 1.5.1
---------------
-
-* There were no 'classifiers' in the package metadata due to
- a bug in setup.py.
-
-macholib 1.5
---------------
-
-macholib 1.5 is a minor feature release
-
-* No longer use 2to3 to provide Python 3 support
-
- As a side-effect of this macholib no longer supports
- Python 2.5 and earlier.
-
-* Adds suppport for some new macho load commands
-
-* Fix for py3k problem in macho_standalone.py
-
- Patch by Guanqun Lu.
-
-* Fix for some issues in macho_dump.py
-
- Patch by Nam Nguyen
-
-* Issue #10: Fix for LC_DATA_IN_CODE linker commands, without
- this fix py2app cannot build application bundles when
- the source binaries have been compiled with Xcode 4.5.
-
-* Issue #6: Fix for LC_ENCRYPTION_INFO linker commands
-
-* Use the mach header information to print the cpu type of a
- binary, instead of trying to deduce that from pointer width
- and endianness.
-
- Changed the code because of issue #6, in which a user tries to
- dump a iOS binary which results in bogus output in the previous
- releases.
-
-* The mapping ``macholib.macho_dump.ARCH_MAP`` is undocumented
- and no longer used by macholib itself. It will be removed
- in the next release.
-
-
-* The command-line tools ``macho_find``, ``macho_dump`` and
- ``macho_standalone`` are deprecated. Use "python -mmacholib"
- instead. That is::
-
- $ python -mmacholib dump /usr/bin/grep
-
- $ python -mmacholib find ~
-
- $ python -mmacholib standalone myapp.app
-
- This makes it clearer which version of the tools are used.
-
-macholib 1.4.3
---------------
-
-macholib 1.4.3 is a minor feature release
-
-* Added strings for 'x86_64' and 'ppc64' to
- macholib.mach_o.CPU_TYPE_NAMES.
-
-* macho_find and macho_dump were broken in the 1.4.2 release
-
-* added 'macholib.util.NOT_SYSTEM_FILES', a list of
- files that aren't system path's even though they are
- located in system locations.
-
- Needed to work around a bug in PySide (see issue #32 in the
- py2app tracker)
-
-
-
-macholib 1.4.2
---------------
-
-macholib 1.4.2 is a minor bugfix release
-
-* The support for new load commands that was added in 1.4.1
- contained a typo that caused problems on OSX 10.7 (Lion).
-
-macholib 1.4.1
---------------
-
-macholib 1.4.1 is a minor feature release
-
-Features:
-
-- Add support for a number of new MachO load commands that were added
- during the lifetime of OSX 10.6: ``LC_LOAD_UPWARD_DYLIB``,
- ``LC_VERSION_MIN_MACOSX``, ``LC_VERSION_MIN_IPHONEOS`` and
- ``LC_FUNCTION_STARTS``.
-
-macholib 1.4
--------------
-
-macholib 1.4 is a feature release
-
-Features:
-
-- Documentation is now generated using `sphinx `_
- and can be viewed at .
-
-- The repository has moved to bitbucket
-
-- There now is a testsuite
-
-- Private functionality inside modules was renamed to
- a name starting with an underscore.
-
- .. note:: if this change affects your code you are relying on undefined
- implementation features, please stop using private functions.
-
-- The basic packable types in ``macholib.ptypes`` were renamed to better
- represent the corresponding C type. The table below lists the old
- an new names (the old names are still available, but are deprecated and
- will be removed in a future release).
-
- +--------------+--------------+
- | **Old name** | **New name** |
- +==============+==============+
- | p_byte | p_int8 |
- +--------------+--------------+
- | p_ubyte | p_uint8 |
- +--------------+--------------+
- | p_short | p_int16 |
- +--------------+--------------+
- | p_ushort | p_uint16 |
- +--------------+--------------+
- | p_int | p_int32 |
- +--------------+--------------+
- | p_uint | p_uint32 |
- +--------------+--------------+
- | p_long | p_int32 |
- +--------------+--------------+
- | p_ulong | p_uint32 |
- +--------------+--------------+
- | p_longlong | p_int64 |
- +--------------+--------------+
- | p_ulonglong | p_uint64 |
- +--------------+--------------+
-
- ``Macholib.ptypes.p_ptr`` is no longer present as it had an unclear
- definition and isn't actually used in the codebase.
-
-
-Bug fixes:
-
-- The semantics of ``dyld.dyld_default_search`` were changed a bit,
- it now first searches the framework path (if appropriate) and then
- the linker path, irrespective of the value of the ``DYLD_FALLBACK*``
- environment variables.
-
- Previous versions would change the search order when those variables
- was set, which is odd and doesn't correspond with the documented
- behaviour of the system dyld.
-
-- It is once again possible to install using python2.5
-
-- The source distribution includes all files, this was broken
- due to the switch to mercurial (which confused setuptools)
-
-macholib 1.3
-------------
-
-macholib 1.3 is a feature release.
-
-Features:
-
-- Experimental Python 3.x support
-
- This version contains lightly tested support for Python 3.
-
-macholib 1.2.2
---------------
-
-macholib 1.2.2 is a bugfix release.
-
-Bug fixes:
-
-- Macholib should work better with 64-bit code
- (patch by Marc-Antoine Parent)
-
-
diff --git a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/INSTALLER b/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/INSTALLER
deleted file mode 100644
index a1b589e..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/INSTALLER
+++ /dev/null
@@ -1 +0,0 @@
-pip
diff --git a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/METADATA b/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/METADATA
deleted file mode 100644
index 18c477a..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/METADATA
+++ /dev/null
@@ -1,371 +0,0 @@
-Metadata-Version: 2.0
-Name: macholib
-Version: 1.9
-Summary: Mach-O header analysis and editing
-Home-page: http://bitbucket.org/ronaldoussoren/macholib
-Author: Ronald Oussoren
-Author-email: ronaldoussoren@mac.com
-License: MIT
-Download-URL: http://pypi.python.org/pypi/macholib
-Keywords: Mach-O,,dyld
-Platform: any
-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: Operating System :: MacOS :: MacOS X
-Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Topic :: Software Development :: Build Tools
-Project-URL: Documentation, https://macholib.readthedocs.io/en/latest/
-Project-URL: Issue tracker, https://bitbucket.org/ronaldoussoren/macholib/issues?status=new&status=open
-Requires-Dist: altgraph (>=0.15)
-
-macholib can be used to analyze and edit Mach-O headers, the executable
-format used by Mac OS X.
-
-It's typically used as a dependency analysis tool, and also to rewrite dylib
-references in Mach-O headers to be @executable_path relative.
-
-Though this tool targets a platform specific file format, it is pure python
-code that is platform and endian independent.
-
-Project links
--------------
-
-* `Documentation `_
-
-* `Issue Tracker `_
-
-* `Repository `_
-
-
-Release history
-===============
-
-macholib 1.9
-------------
-
-Features:
-
-* Add definition for ``macholib.mach_o.reloc_type_generic``, which
- was used in code but never defined.
-
-* #22: Add LICENSE file
-
-* #23: Added "--help" option for "python -m macholib"
-
-* Added function ``macholib.MachO.lc_str_value`` which should
- help in decoding value of ``macholib.mach_o.lc_str``. Those
- values are offsets in the data of a load command, the function
- will return the actually value as a byte string.
-
- See also issue #21.
-
-Bug fixes:
-
-* Pull request #15: Fix typo in thread_command class
-
- Patch by user "phdphuc" on bitbucket.
-
-macholib 1.8
-------------
-
-* Use the same dependency walk logic as otool
-
- Patch by Taras Tsugrii
-
-* Added support for new load commands
-
- Patch by David Dorsey ,
- with enhancements by Ronald Oussoren.
-
-* Fix procesing DSYM file from XCODE 6.x
-
- Patch by HolmsBlazhey
-
-* MachOGraph.locate(): When calling dyld_find(), use kwarg 'loader_path', not 'loader'.
-
- Patch by Stuart Berg
-
-* Add fields to thread_command
-
- Patch by Asger Hautop Drewsen
-
-* Add missing ARM_V7S subtype.
-
- Patch by "NN"
-
-* Fix for SymbolTable
-
- Patch by Christian Klein
-
-* Use first Mach-O header as the default header
-
- Patch by Christian Klein
-
-* Issue #17: add LC_LOAD_UPWARD_DYLIB to _RELOCATABLE set
-
-* Issue #16: macholib "hangs" on invalid input
-
- Due to the use of the range function on untrusted input
- the python process could hang when reading invalid input, due
- to trying to construct an enormous list.
-
-* Issue #18: Bad version parsing in macho_version_helper
-
- The order of subfields in ``mach_version_helper`` was reversed from
- reality.
-
-* Issue #19: Fix aligment issue that prevented code signing
-
- Patch by Brendan Simon
-
-* Fix issue #14: Can't pass endian argument to p_uint64.from_str
-
-
-macholib 1.7
-------------
-
-* Added support for ARM64, LC_ENCRYPTION_INFO_64 and LC_LINKER_OPTION
-
- Patch by Matthias Ringwald.
-
-* Load commands now have a "describe" method that returns more information
- about the command.
-
- Patch by David Dorsey.
-
-* The MAGIC value in the header was always represented in the native
- byte order, instead of as the value read from the binary.
-
- Patch by David Dorsey.
-
-* Added various new constants to "macholib.mach_o".
-
- Patch by David Dorsey.
-
-macholib 1.6.1
---------------
-
-* ?
-
-macholib 1.6
-------------
-
-* Add support for '@loader_path' link command in
- macholib.dyld:
-
- - Added function ``macholib.dyld.dyld_loader_search``
-
- - This function is used by ``macholib.dyld.dyld_find``,
- and that function now has an new (optional) argument
- with the path to the loader.
-
-* Also add support for '@loader_path' to macholib.MachoGraph,
- using the newly added '@loader_path' support in the
- dyld module.
-
- Due to this suppport the *macho_standalone* tool can
- now rewrite binaries that contain an '@loader_path' load
- command.
-
-
-macholib 1.5.2
---------------
-
-* Issue #93: Show the name of the affected file in the exception message
- for Mach-O headers that are too large to relocate.
-
-
-macholib 1.5.1
---------------
-
-* There were no 'classifiers' in the package metadata due to
- a bug in setup.py.
-
-macholib 1.5
---------------
-
-macholib 1.5 is a minor feature release
-
-* No longer use 2to3 to provide Python 3 support
-
- As a side-effect of this macholib no longer supports
- Python 2.5 and earlier.
-
-* Adds suppport for some new macho load commands
-
-* Fix for py3k problem in macho_standalone.py
-
- Patch by Guanqun Lu.
-
-* Fix for some issues in macho_dump.py
-
- Patch by Nam Nguyen
-
-* Issue #10: Fix for LC_DATA_IN_CODE linker commands, without
- this fix py2app cannot build application bundles when
- the source binaries have been compiled with Xcode 4.5.
-
-* Issue #6: Fix for LC_ENCRYPTION_INFO linker commands
-
-* Use the mach header information to print the cpu type of a
- binary, instead of trying to deduce that from pointer width
- and endianness.
-
- Changed the code because of issue #6, in which a user tries to
- dump a iOS binary which results in bogus output in the previous
- releases.
-
-* The mapping ``macholib.macho_dump.ARCH_MAP`` is undocumented
- and no longer used by macholib itself. It will be removed
- in the next release.
-
-
-* The command-line tools ``macho_find``, ``macho_dump`` and
- ``macho_standalone`` are deprecated. Use "python -mmacholib"
- instead. That is::
-
- $ python -mmacholib dump /usr/bin/grep
-
- $ python -mmacholib find ~
-
- $ python -mmacholib standalone myapp.app
-
- This makes it clearer which version of the tools are used.
-
-macholib 1.4.3
---------------
-
-macholib 1.4.3 is a minor feature release
-
-* Added strings for 'x86_64' and 'ppc64' to
- macholib.mach_o.CPU_TYPE_NAMES.
-
-* macho_find and macho_dump were broken in the 1.4.2 release
-
-* added 'macholib.util.NOT_SYSTEM_FILES', a list of
- files that aren't system path's even though they are
- located in system locations.
-
- Needed to work around a bug in PySide (see issue #32 in the
- py2app tracker)
-
-
-
-macholib 1.4.2
---------------
-
-macholib 1.4.2 is a minor bugfix release
-
-* The support for new load commands that was added in 1.4.1
- contained a typo that caused problems on OSX 10.7 (Lion).
-
-macholib 1.4.1
---------------
-
-macholib 1.4.1 is a minor feature release
-
-Features:
-
-- Add support for a number of new MachO load commands that were added
- during the lifetime of OSX 10.6: ``LC_LOAD_UPWARD_DYLIB``,
- ``LC_VERSION_MIN_MACOSX``, ``LC_VERSION_MIN_IPHONEOS`` and
- ``LC_FUNCTION_STARTS``.
-
-macholib 1.4
--------------
-
-macholib 1.4 is a feature release
-
-Features:
-
-- Documentation is now generated using `sphinx `_
- and can be viewed at .
-
-- The repository has moved to bitbucket
-
-- There now is a testsuite
-
-- Private functionality inside modules was renamed to
- a name starting with an underscore.
-
- .. note:: if this change affects your code you are relying on undefined
- implementation features, please stop using private functions.
-
-- The basic packable types in ``macholib.ptypes`` were renamed to better
- represent the corresponding C type. The table below lists the old
- an new names (the old names are still available, but are deprecated and
- will be removed in a future release).
-
- +--------------+--------------+
- | **Old name** | **New name** |
- +==============+==============+
- | p_byte | p_int8 |
- +--------------+--------------+
- | p_ubyte | p_uint8 |
- +--------------+--------------+
- | p_short | p_int16 |
- +--------------+--------------+
- | p_ushort | p_uint16 |
- +--------------+--------------+
- | p_int | p_int32 |
- +--------------+--------------+
- | p_uint | p_uint32 |
- +--------------+--------------+
- | p_long | p_int32 |
- +--------------+--------------+
- | p_ulong | p_uint32 |
- +--------------+--------------+
- | p_longlong | p_int64 |
- +--------------+--------------+
- | p_ulonglong | p_uint64 |
- +--------------+--------------+
-
- ``Macholib.ptypes.p_ptr`` is no longer present as it had an unclear
- definition and isn't actually used in the codebase.
-
-
-Bug fixes:
-
-- The semantics of ``dyld.dyld_default_search`` were changed a bit,
- it now first searches the framework path (if appropriate) and then
- the linker path, irrespective of the value of the ``DYLD_FALLBACK*``
- environment variables.
-
- Previous versions would change the search order when those variables
- was set, which is odd and doesn't correspond with the documented
- behaviour of the system dyld.
-
-- It is once again possible to install using python2.5
-
-- The source distribution includes all files, this was broken
- due to the switch to mercurial (which confused setuptools)
-
-macholib 1.3
-------------
-
-macholib 1.3 is a feature release.
-
-Features:
-
-- Experimental Python 3.x support
-
- This version contains lightly tested support for Python 3.
-
-macholib 1.2.2
---------------
-
-macholib 1.2.2 is a bugfix release.
-
-Bug fixes:
-
-- Macholib should work better with 64-bit code
- (patch by Marc-Antoine Parent)
-
-
diff --git a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/RECORD b/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/RECORD
deleted file mode 100644
index fa01f47..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/RECORD
+++ /dev/null
@@ -1,46 +0,0 @@
-macholib/MachO.py,sha256=FPOACMEOBTxycIOhdMKJJDkYezy-cuoBgBgcbivqN5E,15391
-macholib/MachOGraph.py,sha256=h2DZTvE5vlcceiL6jbrK-PwRmud92N6me0jFdhbUImI,4532
-macholib/MachOStandalone.py,sha256=HI7E-t5p0QF-0gxIPsDJyzQAPYVugcMYIBV1fDanuiA,5522
-macholib/SymbolTable.py,sha256=A9dNVjBYuvmZMflnYoqvtmieASQN9g5MxNT-3T4I3LU,2928
-macholib/__init__.py,sha256=Ny0leYlFItcquEvUp1ezlfZWuy9sr2lusz3H48SYees,153
-macholib/__main__.py,sha256=UDgP8UK5tRYfZvM7ljtnXbuqVLCT3nJy_2K6_DzLJkA,1951
-macholib/_cmdline.py,sha256=IvmVKwFEfD8hWNmtiHmIdSZrIXGUdmlWx3UhKi_LGIo,1144
-macholib/dyld.py,sha256=rafbQSM_GBBs7-niui_llGRdpkxs0cvuVodncCFyB-I,5472
-macholib/dylib.py,sha256=cinlk8GKyoXcBOySmOzIxkQQgFyll65UGiO_Vw4XuAs,963
-macholib/framework.py,sha256=PlKEkAxzoR-WzgJwBteyGVZxx40mihLdPDOGkN-9EC8,1119
-macholib/itergraphreport.py,sha256=1X-5S6SWsh5tCLhEuEyA0BWNHliwh0TfmrbSImRPdJk,1907
-macholib/mach_o.py,sha256=XUgQ0ueH0con5e6CEHyHU0rnee_IHFsQEXKtSjslCrA,47318
-macholib/macho_dump.py,sha256=SMHJAh6xgoTMx8bOTCo0S5TnJxQ0MC59e39ipSAUqkk,1468
-macholib/macho_find.py,sha256=BNO7zulWJiJ_1Uui8T3VY_OioltQYYIIUB7t0oRZa7A,396
-macholib/macho_standalone.py,sha256=YVaRx0sRe7daFrRdtjxjZOJsdRlx6AyDfJVwbERsKaU,759
-macholib/ptypes.py,sha256=PJ1ULm10Vjv4M9m5XbB35a9VvX_IDTXsAIsjf7n4Ioo,8431
-macholib/util.py,sha256=Neo32liIFa9IpZ3PbSvnPt1iyRt8pfgK4kefD0DpHFU,7079
-macholib-1.9.dist-info/DESCRIPTION.rst,sha256=XvEpkTl4ZMRMbhvSgPh4JNzFTF66wzYH9s-4g_i5ODw,8884
-macholib-1.9.dist-info/METADATA,sha256=NR5YiOPwIMJU15CXgzU2eNFwDsDn6_ZrVl-EGD828Qs,10018
-macholib-1.9.dist-info/RECORD,,
-macholib-1.9.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110
-macholib-1.9.dist-info/entry_points.txt,sha256=0Akjp8bEzke_WJfJOP2OdtudwTpJEvLzzQp63-D29EU,145
-macholib-1.9.dist-info/metadata.json,sha256=8n0z1kSjHB1mchVtU-1yCIDiG8gx-L71pqHdpVgB0qg,1559
-macholib-1.9.dist-info/top_level.txt,sha256=40hJ8pWfXo-R8zt8z9jF7KS9kiLzEmuLnfFVgh0UUkw,9
-macholib-1.9.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
-../../../bin/macho_dump,sha256=mpEPaL9fUQk_Xy79Ws4lZ-YIT0Y4qPk_CMr5Z6q8C1A,297
-../../../bin/macho_find,sha256=iMGVxX3a-Q7F6lL7qTRY3dHLoGhAzyH8kybmUN90aM4,297
-../../../bin/macho_standalone,sha256=M6MtwrVMO716IYh_FkWeohzSwiwCXiAlTLpP9OH4vx4,303
-macholib-1.9.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-macholib/__pycache__/util.cpython-36.pyc,,
-macholib/__pycache__/dylib.cpython-36.pyc,,
-macholib/__pycache__/macho_standalone.cpython-36.pyc,,
-macholib/__pycache__/mach_o.cpython-36.pyc,,
-macholib/__pycache__/framework.cpython-36.pyc,,
-macholib/__pycache__/macho_find.cpython-36.pyc,,
-macholib/__pycache__/__main__.cpython-36.pyc,,
-macholib/__pycache__/SymbolTable.cpython-36.pyc,,
-macholib/__pycache__/ptypes.cpython-36.pyc,,
-macholib/__pycache__/macho_dump.cpython-36.pyc,,
-macholib/__pycache__/MachOGraph.cpython-36.pyc,,
-macholib/__pycache__/MachOStandalone.cpython-36.pyc,,
-macholib/__pycache__/dyld.cpython-36.pyc,,
-macholib/__pycache__/__init__.cpython-36.pyc,,
-macholib/__pycache__/itergraphreport.cpython-36.pyc,,
-macholib/__pycache__/_cmdline.cpython-36.pyc,,
-macholib/__pycache__/MachO.cpython-36.pyc,,
diff --git a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/WHEEL b/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/WHEEL
deleted file mode 100644
index 8b6dd1b..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/WHEEL
+++ /dev/null
@@ -1,6 +0,0 @@
-Wheel-Version: 1.0
-Generator: bdist_wheel (0.29.0)
-Root-Is-Purelib: true
-Tag: py2-none-any
-Tag: py3-none-any
-
diff --git a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/entry_points.txt b/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/entry_points.txt
deleted file mode 100644
index d121db6..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/entry_points.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-[console_scripts]
-macho_dump = macholib.macho_dump:main
-macho_find = macholib.macho_find:main
-macho_standalone = macholib.macho_standalone:main
-
diff --git a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/metadata.json b/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/metadata.json
deleted file mode 100644
index 7090a1f..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/metadata.json
+++ /dev/null
@@ -1 +0,0 @@
-{"classifiers": ["Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Operating System :: MacOS :: MacOS X", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Build Tools"], "download_url": "http://pypi.python.org/pypi/macholib", "extensions": {"python.commands": {"wrap_console": {"macho_dump": "macholib.macho_dump:main", "macho_find": "macholib.macho_find:main", "macho_standalone": "macholib.macho_standalone:main"}}, "python.details": {"contacts": [{"email": "ronaldoussoren@mac.com", "name": "Ronald Oussoren", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "http://bitbucket.org/ronaldoussoren/macholib"}}, "python.exports": {"console_scripts": {"macho_dump": "macholib.macho_dump:main", "macho_find": "macholib.macho_find:main", "macho_standalone": "macholib.macho_standalone:main"}}}, "extras": [], "generator": "bdist_wheel (0.29.0)", "keywords": ["Mach-O", "dyld"], "license": "MIT", "metadata_version": "2.0", "name": "macholib", "platform": "any", "project_url": "Documentation, https://macholib.readthedocs.io/en/latest/", "run_requires": [{"requires": ["altgraph (>=0.15)"]}], "summary": "Mach-O header analysis and editing", "version": "1.9"}
\ No newline at end of file
diff --git a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/top_level.txt b/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/top_level.txt
deleted file mode 100644
index e684f99..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/top_level.txt
+++ /dev/null
@@ -1 +0,0 @@
-macholib
diff --git a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/zip-safe b/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/zip-safe
deleted file mode 100644
index 8b13789..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib-1.9.dist-info/zip-safe
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/app/venv/lib/python3.6/site-packages/macholib/MachO.py b/app/venv/lib/python3.6/site-packages/macholib/MachO.py
deleted file mode 100644
index 84b4e4b..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib/MachO.py
+++ /dev/null
@@ -1,435 +0,0 @@
-"""
-Utilities for reading and writing Mach-O headers
-"""
-from __future__ import print_function
-
-import sys
-import struct
-import os
-
-from .mach_o import MH_FILETYPE_SHORTNAMES, LC_DYSYMTAB, LC_SYMTAB
-from .mach_o import load_command, S_ZEROFILL, section_64, section
-from .mach_o import LC_REGISTRY, LC_ID_DYLIB, LC_SEGMENT, fat_header
-from .mach_o import LC_SEGMENT_64, MH_CIGAM_64, MH_MAGIC_64, FAT_MAGIC
-from .mach_o import mach_header, fat_arch64, FAT_MAGIC_64, fat_arch
-from .mach_o import LC_REEXPORT_DYLIB, LC_PREBOUND_DYLIB, LC_LOAD_WEAK_DYLIB
-from .mach_o import LC_LOAD_UPWARD_DYLIB, LC_LOAD_DYLIB, mach_header_64
-from .mach_o import MH_CIGAM, MH_MAGIC
-from .ptypes import sizeof
-
-from macholib.util import fileview
-try:
- from macholib.compat import bytes
-except ImportError:
- pass
-
-try:
- unicode
-except NameError:
- unicode = str
-
-if sys.version_info[0] == 2:
- range = xrange # noqa: F821
-
-__all__ = ['MachO']
-
-_RELOCATABLE = set((
- # relocatable commands that should be used for dependency walking
- LC_LOAD_DYLIB,
- LC_LOAD_UPWARD_DYLIB,
- LC_LOAD_WEAK_DYLIB,
- LC_PREBOUND_DYLIB,
- LC_REEXPORT_DYLIB,
-))
-
-_RELOCATABLE_NAMES = {
- LC_LOAD_DYLIB: 'load_dylib',
- LC_LOAD_UPWARD_DYLIB: 'load_upward_dylib',
- LC_LOAD_WEAK_DYLIB: 'load_weak_dylib',
- LC_PREBOUND_DYLIB: 'prebound_dylib',
- LC_REEXPORT_DYLIB: 'reexport_dylib',
-}
-
-
-def _shouldRelocateCommand(cmd):
- """
- Should this command id be investigated for relocation?
- """
- return cmd in _RELOCATABLE
-
-
-def lc_str_value(offset, cmd_info):
- """
- Fetch the actual value of a field of type "lc_str"
- """
- cmd_load, cmd_cmd, cmd_data = cmd_info
-
- offset -= sizeof(cmd_load) + sizeof(cmd_cmd)
- return cmd_data[offset:].strip(b'\x00')
-
-
-class MachO(object):
- """
- Provides reading/writing the Mach-O header of a specific existing file
- """
- # filename - the original filename of this mach-o
- # sizediff - the current deviation from the initial mach-o size
- # header - the mach-o header
- # commands - a list of (load_command, somecommand, data)
- # data is either a str, or a list of segment structures
- # total_size - the current mach-o header size (including header)
- # low_offset - essentially, the maximum mach-o header size
- # id_cmd - the index of my id command, or None
-
- def __init__(self, filename):
-
- # supports the ObjectGraph protocol
- self.graphident = filename
- self.filename = filename
- self.loader_path = os.path.dirname(filename)
-
- # initialized by load
- self.fat = None
- self.headers = []
- with open(filename, 'rb') as fp:
- self.load(fp)
-
- def __repr__(self):
- return "" % (self.filename,)
-
- def load(self, fh):
- assert fh.tell() == 0
- header = struct.unpack('>I', fh.read(4))[0]
- fh.seek(0)
- if header in (FAT_MAGIC, FAT_MAGIC_64):
- self.load_fat(fh)
- else:
- fh.seek(0, 2)
- size = fh.tell()
- fh.seek(0)
- self.load_header(fh, 0, size)
-
- def load_fat(self, fh):
- self.fat = fat_header.from_fileobj(fh)
- if self.fat.magic == FAT_MAGIC:
- archs = [fat_arch.from_fileobj(fh)
- for i in range(self.fat.nfat_arch)]
- elif self.fat.magic == FAT_MAGIC_64:
- archs = [fat_arch64.from_fileobj(fh)
- for i in range(self.fat.nfat_arch)]
- else:
- raise ValueError("Unknown fat header magic: %r" % (self.fat.magic))
-
- for arch in archs:
- self.load_header(fh, arch.offset, arch.size)
-
- def rewriteLoadCommands(self, *args, **kw):
- changed = False
- for header in self.headers:
- if header.rewriteLoadCommands(*args, **kw):
- changed = True
- return changed
-
- def load_header(self, fh, offset, size):
- fh.seek(offset)
- header = struct.unpack('>I', fh.read(4))[0]
- fh.seek(offset)
- if header == MH_MAGIC:
- magic, hdr, endian = MH_MAGIC, mach_header, '>'
- elif header == MH_CIGAM:
- magic, hdr, endian = MH_CIGAM, mach_header, '<'
- elif header == MH_MAGIC_64:
- magic, hdr, endian = MH_MAGIC_64, mach_header_64, '>'
- elif header == MH_CIGAM_64:
- magic, hdr, endian = MH_CIGAM_64, mach_header_64, '<'
- else:
- raise ValueError("Unknown Mach-O header: 0x%08x in %r" % (
- header, fh))
- hdr = MachOHeader(self, fh, offset, size, magic, hdr, endian)
- self.headers.append(hdr)
-
- def write(self, f):
- for header in self.headers:
- header.write(f)
-
-
-class MachOHeader(object):
- """
- Provides reading/writing the Mach-O header of a specific existing file
- """
- # filename - the original filename of this mach-o
- # sizediff - the current deviation from the initial mach-o size
- # header - the mach-o header
- # commands - a list of (load_command, somecommand, data)
- # data is either a str, or a list of segment structures
- # total_size - the current mach-o header size (including header)
- # low_offset - essentially, the maximum mach-o header size
- # id_cmd - the index of my id command, or None
-
- def __init__(self, parent, fh, offset, size, magic, hdr, endian):
- self.MH_MAGIC = magic
- self.mach_header = hdr
-
- # These are all initialized by self.load()
- self.parent = parent
- self.offset = offset
- self.size = size
-
- self.endian = endian
- self.header = None
- self.commands = None
- self.id_cmd = None
- self.sizediff = None
- self.total_size = None
- self.low_offset = None
- self.filetype = None
- self.headers = []
-
- self.load(fh)
-
- def __repr__(self):
- return "<%s filename=%r offset=%d size=%d endian=%r>" % (
- type(self).__name__, self.parent.filename, self.offset, self.size,
- self.endian)
-
- def load(self, fh):
- fh = fileview(fh, self.offset, self.size)
- fh.seek(0)
-
- self.sizediff = 0
- kw = {'_endian_': self.endian}
- header = self.mach_header.from_fileobj(fh, **kw)
- self.header = header
- # if header.magic != self.MH_MAGIC:
- # raise ValueError("header has magic %08x, expecting %08x" % (
- # header.magic, self.MH_MAGIC))
-
- cmd = self.commands = []
-
- self.filetype = self.get_filetype_shortname(header.filetype)
-
- read_bytes = 0
- low_offset = sys.maxsize
- for i in range(header.ncmds):
- # read the load command
- cmd_load = load_command.from_fileobj(fh, **kw)
-
- # read the specific command
- klass = LC_REGISTRY.get(cmd_load.cmd, None)
- if klass is None:
- raise ValueError("Unknown load command: %d" % (cmd_load.cmd,))
- cmd_cmd = klass.from_fileobj(fh, **kw)
-
- if cmd_load.cmd == LC_ID_DYLIB:
- # remember where this command was
- if self.id_cmd is not None:
- raise ValueError("This dylib already has an id")
- self.id_cmd = i
-
- if cmd_load.cmd in (LC_SEGMENT, LC_SEGMENT_64):
- # for segment commands, read the list of segments
- segs = []
- # assert that the size makes sense
- if cmd_load.cmd == LC_SEGMENT:
- section_cls = section
- else: # LC_SEGMENT_64
- section_cls = section_64
-
- expected_size = (
- sizeof(klass) + sizeof(load_command) +
- (sizeof(section_cls) * cmd_cmd.nsects)
- )
- if cmd_load.cmdsize != expected_size:
- raise ValueError("Segment size mismatch")
- # this is a zero block or something
- # so the beginning is wherever the fileoff of this command is
- if cmd_cmd.nsects == 0:
- if cmd_cmd.filesize != 0:
- low_offset = min(low_offset, cmd_cmd.fileoff)
- else:
- # this one has multiple segments
- for j in range(cmd_cmd.nsects):
- # read the segment
- seg = section_cls.from_fileobj(fh, **kw)
- # if the segment has a size and is not zero filled
- # then its beginning is the offset of this segment
- not_zerofill = ((seg.flags & S_ZEROFILL) != S_ZEROFILL)
- if seg.offset > 0 and seg.size > 0 and not_zerofill:
- low_offset = min(low_offset, seg.offset)
- if not_zerofill:
- c = fh.tell()
- fh.seek(seg.offset)
- sd = fh.read(seg.size)
- seg.add_section_data(sd)
- fh.seek(c)
- segs.append(seg)
- # data is a list of segments
- cmd_data = segs
-
- # XXX: Disabled for now because writing back doesn't work
- # elif cmd_load.cmd == LC_CODE_SIGNATURE:
- # c = fh.tell()
- # fh.seek(cmd_cmd.dataoff)
- # cmd_data = fh.read(cmd_cmd.datasize)
- # fh.seek(c)
- # elif cmd_load.cmd == LC_SYMTAB:
- # c = fh.tell()
- # fh.seek(cmd_cmd.stroff)
- # cmd_data = fh.read(cmd_cmd.strsize)
- # fh.seek(c)
-
- else:
- # data is a raw str
- data_size = (
- cmd_load.cmdsize - sizeof(klass) - sizeof(load_command)
- )
- cmd_data = fh.read(data_size)
- cmd.append((cmd_load, cmd_cmd, cmd_data))
- read_bytes += cmd_load.cmdsize
-
- # make sure the header made sense
- if read_bytes != header.sizeofcmds:
- raise ValueError("Read %d bytes, header reports %d bytes" % (
- read_bytes, header.sizeofcmds))
- self.total_size = sizeof(self.mach_header) + read_bytes
- self.low_offset = low_offset
-
- def walkRelocatables(self, shouldRelocateCommand=_shouldRelocateCommand):
- """
- for all relocatable commands
- yield (command_index, command_name, filename)
- """
- for (idx, (lc, cmd, data)) in enumerate(self.commands):
- if shouldRelocateCommand(lc.cmd):
- name = _RELOCATABLE_NAMES[lc.cmd]
- ofs = cmd.name - sizeof(lc.__class__) - sizeof(cmd.__class__)
- yield idx, name, data[ofs:data.find(b'\x00', ofs)].decode(
- sys.getfilesystemencoding())
-
- def rewriteInstallNameCommand(self, loadcmd):
- """Rewrite the load command of this dylib"""
- if self.id_cmd is not None:
- self.rewriteDataForCommand(self.id_cmd, loadcmd)
- return True
- return False
-
- def changedHeaderSizeBy(self, bytes):
- self.sizediff += bytes
- if (self.total_size + self.sizediff) > self.low_offset:
- print(
- "WARNING: Mach-O header in %r may be too large to relocate" % (
- self.parent.filename,))
-
- def rewriteLoadCommands(self, changefunc):
- """
- Rewrite the load commands based upon a change dictionary
- """
- data = changefunc(self.parent.filename)
- changed = False
- if data is not None:
- if self.rewriteInstallNameCommand(
- data.encode(sys.getfilesystemencoding())):
- changed = True
- for idx, name, filename in self.walkRelocatables():
- data = changefunc(filename)
- if data is not None:
- if self.rewriteDataForCommand(idx, data.encode(
- sys.getfilesystemencoding())):
- changed = True
- return changed
-
- def rewriteDataForCommand(self, idx, data):
- lc, cmd, old_data = self.commands[idx]
- hdrsize = sizeof(lc.__class__) + sizeof(cmd.__class__)
- align = struct.calcsize('Q')
- data = data + (b'\x00' * (align - (len(data) % align)))
- newsize = hdrsize + len(data)
- self.commands[idx] = (lc, cmd, data)
- self.changedHeaderSizeBy(newsize - lc.cmdsize)
- lc.cmdsize, cmd.name = newsize, hdrsize
- return True
-
- def synchronize_size(self):
- if (self.total_size + self.sizediff) > self.low_offset:
- raise ValueError(
- ("New Mach-O header is too large to relocate in %r "
- "(new size=%r, max size=%r, delta=%r)") % (
- self.parent.filename, self.total_size + self.sizediff,
- self.low_offset, self.sizediff))
- self.header.sizeofcmds += self.sizediff
- self.total_size = sizeof(self.mach_header) + self.header.sizeofcmds
- self.sizediff = 0
-
- def write(self, fileobj):
- fileobj = fileview(fileobj, self.offset, self.size)
- fileobj.seek(0)
-
- # serialize all the mach-o commands
- self.synchronize_size()
-
- self.header.to_fileobj(fileobj)
- for lc, cmd, data in self.commands:
- lc.to_fileobj(fileobj)
- cmd.to_fileobj(fileobj)
-
- if sys.version_info[0] == 2:
- if isinstance(data, unicode):
- fileobj.write(data.encode(sys.getfilesystemencoding()))
-
- elif isinstance(data, (bytes, str)):
- fileobj.write(data)
- else:
- # segments..
- for obj in data:
- obj.to_fileobj(fileobj)
- else:
- if isinstance(data, str):
- fileobj.write(data.encode(sys.getfilesystemencoding()))
-
- elif isinstance(data, bytes):
- fileobj.write(data)
-
- else:
- # segments..
- for obj in data:
- obj.to_fileobj(fileobj)
-
- # zero out the unused space, doubt this is strictly necessary
- # and is generally probably already the case
- fileobj.write(b'\x00' * (self.low_offset - fileobj.tell()))
-
- def getSymbolTableCommand(self):
- for lc, cmd, data in self.commands:
- if lc.cmd == LC_SYMTAB:
- return cmd
- return None
-
- def getDynamicSymbolTableCommand(self):
- for lc, cmd, data in self.commands:
- if lc.cmd == LC_DYSYMTAB:
- return cmd
- return None
-
- def get_filetype_shortname(self, filetype):
- if filetype in MH_FILETYPE_SHORTNAMES:
- return MH_FILETYPE_SHORTNAMES[filetype]
- else:
- return 'unknown'
-
-
-def main(fn):
- m = MachO(fn)
- seen = set()
- for header in m.headers:
- for idx, name, other in header.walkRelocatables():
- if other not in seen:
- seen.add(other)
- print('\t' + name + ": " + other)
-
-
-if __name__ == '__main__':
- import sys
- files = sys.argv[1:] or ['/bin/ls']
- for fn in files:
- print(fn)
- main(fn)
diff --git a/app/venv/lib/python3.6/site-packages/macholib/MachOGraph.py b/app/venv/lib/python3.6/site-packages/macholib/MachOGraph.py
deleted file mode 100644
index 5a733c3..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib/MachOGraph.py
+++ /dev/null
@@ -1,138 +0,0 @@
-"""
-Utilities for reading and writing Mach-O headers
-"""
-
-import os
-import sys
-
-from altgraph.ObjectGraph import ObjectGraph
-
-from macholib.dyld import dyld_find
-from macholib.MachO import MachO
-from macholib.itergraphreport import itergraphreport
-
-__all__ = ['MachOGraph']
-
-try:
- unicode
-except NameError:
- unicode = str
-
-
-class MissingMachO(object):
- def __init__(self, filename):
- self.graphident = filename
- self.headers = ()
-
- def __repr__(self):
- return '<%s graphident=%r>' % (type(self).__name__, self.graphident)
-
-
-class MachOGraph(ObjectGraph):
- """
- Graph data structure of Mach-O dependencies
- """
- def __init__(self, debug=0, graph=None, env=None, executable_path=None):
- super(MachOGraph, self).__init__(debug=debug, graph=graph)
- self.env = env
- self.trans_table = {}
- self.executable_path = executable_path
-
- def locate(self, filename, loader=None):
- if not isinstance(filename, (str, unicode)):
- raise TypeError("%r is not a string" % (filename,))
- if filename.startswith('@loader_path/') and loader is not None:
- fn = self.trans_table.get((loader.filename, filename))
- if fn is None:
- loader_path = loader.loader_path
-
- try:
- fn = dyld_find(
- filename, env=self.env,
- executable_path=self.executable_path,
- loader_path=loader_path)
- self.trans_table[(loader.filename, filename)] = fn
- except ValueError:
- return None
-
- else:
- fn = self.trans_table.get(filename)
- if fn is None:
- try:
- fn = dyld_find(
- filename, env=self.env,
- executable_path=self.executable_path)
- self.trans_table[filename] = fn
- except ValueError:
- return None
- return fn
-
- def findNode(self, name, loader=None):
- assert isinstance(name, (str, unicode))
- data = super(MachOGraph, self).findNode(name)
- if data is not None:
- return data
- newname = self.locate(name, loader=loader)
- if newname is not None and newname != name:
- return self.findNode(newname)
- return None
-
- def run_file(self, pathname, caller=None):
- assert isinstance(pathname, (str, unicode))
- self.msgin(2, "run_file", pathname)
- m = self.findNode(pathname, loader=caller)
- if m is None:
- if not os.path.exists(pathname):
- raise ValueError('%r does not exist' % (pathname,))
- m = self.createNode(MachO, pathname)
- self.createReference(caller, m, edge_data='run_file')
- self.scan_node(m)
- self.msgout(2, '')
- return m
-
- def load_file(self, name, caller=None):
- assert isinstance(name, (str, unicode))
- self.msgin(2, "load_file", name, caller)
- m = self.findNode(name, loader=caller)
- if m is None:
- newname = self.locate(name, loader=caller)
- if newname is not None and newname != name:
- return self.load_file(newname, caller=caller)
- if os.path.exists(name):
- m = self.createNode(MachO, name)
- self.scan_node(m)
- else:
- m = self.createNode(MissingMachO, name)
- self.msgout(2, '')
- return m
-
- def scan_node(self, node):
- self.msgin(2, 'scan_node', node)
- for header in node.headers:
- for idx, name, filename in header.walkRelocatables():
- assert isinstance(name, (str, unicode))
- assert isinstance(filename, (str, unicode))
- m = self.load_file(filename, caller=node)
- self.createReference(node, m, edge_data=name)
- self.msgout(2, '', node)
-
- def itergraphreport(self, name='G'):
- nodes = map(self.graph.describe_node, self.graph.iterdfs(self))
- describe_edge = self.graph.describe_edge
- return itergraphreport(nodes, describe_edge, name=name)
-
- def graphreport(self, fileobj=None):
- if fileobj is None:
- fileobj = sys.stdout
- fileobj.writelines(self.itergraphreport())
-
-
-def main(args):
- g = MachOGraph()
- for arg in args:
- g.run_file(arg)
- g.graphreport()
-
-
-if __name__ == '__main__':
- main(sys.argv[1:] or ['/bin/ls'])
diff --git a/app/venv/lib/python3.6/site-packages/macholib/MachOStandalone.py b/app/venv/lib/python3.6/site-packages/macholib/MachOStandalone.py
deleted file mode 100644
index 03e75bd..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib/MachOStandalone.py
+++ /dev/null
@@ -1,161 +0,0 @@
-import os
-
-from macholib.MachOGraph import MachOGraph, MissingMachO
-from macholib.util import iter_platform_files, in_system_path, mergecopy, \
- mergetree, flipwritable, has_filename_filter
-from macholib.dyld import framework_info
-from collections import deque
-
-
-class ExcludedMachO(MissingMachO):
- pass
-
-
-class FilteredMachOGraph(MachOGraph):
- def __init__(self, delegate, *args, **kwargs):
- super(FilteredMachOGraph, self).__init__(*args, **kwargs)
- self.delegate = delegate
-
- def createNode(self, cls, name):
- cls = self.delegate.getClass(name, cls)
- res = super(FilteredMachOGraph, self).createNode(cls, name)
- return self.delegate.update_node(res)
-
- def locate(self, filename, loader=None):
- newname = super(FilteredMachOGraph, self).locate(filename, loader)
- if newname is None:
- return None
- return self.delegate.locate(newname, loader=loader)
-
-
-class MachOStandalone(object):
- def __init__(
- self, base, dest=None, graph=None, env=None,
- executable_path=None):
- self.base = os.path.join(os.path.abspath(base), '')
- if dest is None:
- dest = os.path.join(self.base, 'Contents', 'Frameworks')
- self.dest = dest
- self.mm = FilteredMachOGraph(
- self, graph=graph, env=env, executable_path=executable_path)
- self.changemap = {}
- self.excludes = []
- self.pending = deque()
-
- def update_node(self, m):
- return m
-
- def getClass(self, name, cls):
- if in_system_path(name):
- return ExcludedMachO
- for base in self.excludes:
- if name.startswith(base):
- return ExcludedMachO
- return cls
-
- def locate(self, filename, loader=None):
- if in_system_path(filename):
- return filename
- if filename.startswith(self.base):
- return filename
- for base in self.excludes:
- if filename.startswith(base):
- return filename
- if filename in self.changemap:
- return self.changemap[filename]
- info = framework_info(filename)
- if info is None:
- res = self.copy_dylib(filename)
- self.changemap[filename] = res
- return res
- else:
- res = self.copy_framework(info)
- self.changemap[filename] = res
- return res
-
- def copy_dylib(self, filename):
- # When the filename is a symlink use the basename of the target of
- # the link as the name in standalone bundle. This avoids problems
- # when two libraries link to the same dylib but using different
- # symlinks.
- if os.path.islink(filename):
- dest = os.path.join(
- self.dest, os.path.basename(os.path.realpath(filename)))
- else:
- dest = os.path.join(self.dest, os.path.basename(filename))
-
- if not os.path.exists(dest):
- self.mergecopy(filename, dest)
- return dest
-
- def mergecopy(self, src, dest):
- return mergecopy(src, dest)
-
- def mergetree(self, src, dest):
- return mergetree(src, dest)
-
- def copy_framework(self, info):
- dest = os.path.join(self.dest, info['shortname'] + '.framework')
- destfn = os.path.join(self.dest, info['name'])
- src = os.path.join(info['location'], info['shortname'] + '.framework')
- if not os.path.exists(dest):
- self.mergetree(src, dest)
- self.pending.append((destfn, iter_platform_files(dest)))
- return destfn
-
- def run(self, platfiles=None, contents=None):
- mm = self.mm
- if contents is None:
- contents = '@executable_path/..'
- if platfiles is None:
- platfiles = iter_platform_files(self.base)
-
- for fn in platfiles:
- mm.run_file(fn)
-
- while self.pending:
- fmwk, files = self.pending.popleft()
- ref = mm.findNode(fmwk)
- for fn in files:
- mm.run_file(fn, caller=ref)
-
- changemap = {}
- skipcontents = os.path.join(os.path.dirname(self.dest), '')
- machfiles = []
-
- for node in mm.flatten(has_filename_filter):
- machfiles.append(node)
- dest = os.path.join(
- contents, os.path.normpath(node.filename[len(skipcontents):]))
- changemap[node.filename] = dest
-
- def changefunc(path):
- res = mm.locate(path)
- rv = changemap.get(res)
- if rv is None and path.startswith('@loader_path/'):
- rv = changemap.get(mm.locate(mm.trans_table.get(
- (node.filename, path))))
- return rv
-
- for node in machfiles:
- fn = mm.locate(node.filename)
- if fn is None:
- continue
- rewroteAny = False
- for header in node.headers:
- if node.rewriteLoadCommands(changefunc):
- rewroteAny = True
- if rewroteAny:
- old_mode = flipwritable(fn)
- try:
- with open(fn, 'rb+') as f:
- for header in node.headers:
- f.seek(0)
- node.write(f)
- f.seek(0, 2)
- f.flush()
- finally:
- flipwritable(fn, old_mode)
-
- allfiles = [mm.locate(node.filename) for node in machfiles]
- return set(filter(None, allfiles))
diff --git a/app/venv/lib/python3.6/site-packages/macholib/SymbolTable.py b/app/venv/lib/python3.6/site-packages/macholib/SymbolTable.py
deleted file mode 100644
index bf4d383..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib/SymbolTable.py
+++ /dev/null
@@ -1,86 +0,0 @@
-"""
-Class to read the symbol table from a Mach-O header
-"""
-from __future__ import with_statement
-
-from macholib.mach_o import relocation_info, dylib_reference, dylib_module
-from macholib.mach_o import dylib_table_of_contents, nlist, nlist_64
-from macholib.mach_o import MH_CIGAM_64, MH_MAGIC_64
-import sys
-
-__all__ = ['SymbolTable']
-
-if sys.version_info[0] == 2:
- range = xrange # noqa: F821
-
-
-class SymbolTable(object):
- def __init__(self, macho, header=None, openfile=None):
- if openfile is None:
- openfile = open
- if header is None:
- header = macho.headers[0]
- self.macho_header = header
- with openfile(macho.filename, 'rb') as fh:
- self.symtab = header.getSymbolTableCommand()
- self.dysymtab = header.getDynamicSymbolTableCommand()
-
- if self.symtab is not None:
- self.nlists = self.readSymbolTable(fh)
-
- if self.dysymtab is not None:
- self.readDynamicSymbolTable(fh)
-
- def readSymbolTable(self, fh):
- cmd = self.symtab
- fh.seek(self.macho_header.offset + cmd.stroff)
- strtab = fh.read(cmd.strsize)
- fh.seek(self.macho_header.offset + cmd.symoff)
- nlists = []
-
- if self.macho_header.MH_MAGIC in [MH_MAGIC_64, MH_CIGAM_64]:
- cls = nlist_64
- else:
- cls = nlist
-
- for i in range(cmd.nsyms):
- cmd = cls.from_fileobj(fh, _endian_=self.macho_header.endian)
- if cmd.n_un == 0:
- nlists.append((cmd, ''))
- else:
- nlists.append(
- (cmd, strtab[cmd.n_un:strtab.find(b'\x00', cmd.n_un)]))
- return nlists
-
- def readDynamicSymbolTable(self, fh):
- cmd = self.dysymtab
- nlists = self.nlists
-
- self.localsyms = nlists[cmd.ilocalsym:cmd.ilocalsym+cmd.nlocalsym]
- self.extdefsyms = nlists[cmd.iextdefsym:cmd.iextdefsym+cmd.nextdefsym]
- self.undefsyms = nlists[cmd.iundefsym:cmd.iundefsym+cmd.nundefsym]
- if cmd.tocoff == 0:
- self.toc = None
- else:
- self.toc = self.readtoc(fh, cmd.tocoff, cmd.ntoc)
-
- def readtoc(self, fh, off, n):
- fh.seek(self.macho_header.offset + off)
- return [dylib_table_of_contents.from_fileobj(fh) for i in range(n)]
-
- def readmodtab(self, fh, off, n):
- fh.seek(self.macho_header.offset + off)
- return [dylib_module.from_fileobj(fh) for i in range(n)]
-
- def readsym(self, fh, off, n):
- fh.seek(self.macho_header.offset + off)
- refs = []
- for i in range(n):
- ref = dylib_reference.from_fileobj(fh)
- isym, flags = divmod(ref.isym_flags, 256)
- refs.append((self.nlists[isym], flags))
- return refs
-
- def readrel(self, fh, off, n):
- fh.seek(self.macho_header.offset + off)
- return [relocation_info.from_fileobj(fh) for i in range(n)]
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__init__.py b/app/venv/lib/python3.6/site-packages/macholib/__init__.py
deleted file mode 100644
index 87444a3..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib/__init__.py
+++ /dev/null
@@ -1,8 +0,0 @@
-"""
-Enough Mach-O to make your head spin.
-
-See the relevant header files in /usr/include/mach-o
-
-And also Apple's documentation.
-"""
-__version__ = '1.9'
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__main__.py b/app/venv/lib/python3.6/site-packages/macholib/__main__.py
deleted file mode 100644
index 66eaad8..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib/__main__.py
+++ /dev/null
@@ -1,83 +0,0 @@
-from __future__ import print_function, absolute_import
-import os
-import sys
-
-from macholib.util import is_platform_file
-from macholib import macho_dump
-from macholib import macho_standalone
-
-gCommand = None
-
-
-def check_file(fp, path, callback):
- if not os.path.exists(path):
- print(
- '%s: %s: No such file or directory' % (gCommand, path),
- file=sys.stderr)
- return 1
-
- try:
- is_plat = is_platform_file(path)
-
- except IOError as msg:
- print('%s: %s: %s' % (gCommand, path, msg), file=sys.stderr)
- return 1
-
- else:
- if is_plat:
- callback(fp, path)
- return 0
-
-
-def walk_tree(callback, paths):
- err = 0
-
- for base in paths:
- if os.path.isdir(base):
- for root, dirs, files in os.walk(base):
- for fn in files:
- err |= check_file(
- sys.stdout, os.path.join(root, fn), callback)
- else:
- err |= check_file(sys.stdout, base, callback)
-
- return err
-
-
-def print_usage(fp):
- print("Usage:", file=fp)
- print(" python -mmacholib [help|--help]", file=fp)
- print(" python -mmacholib dump FILE ...", file=fp)
- print(" python -mmacholib find DIR ...", file=fp)
- print(" python -mmacholib standalone DIR ...", file=fp)
-
-
-def main():
- global gCommand
- if len(sys.argv) < 3:
- print_usage(sys.stderr)
- sys.exit(1)
-
- gCommand = sys.argv[1]
-
- if gCommand == 'dump':
- walk_tree(macho_dump.print_file, sys.argv[2:])
-
- elif gCommand == 'find':
- walk_tree(lambda fp, path: print(path, file=fp), sys.argv[2:])
-
- elif gCommand == 'standalone':
- for dn in sys.argv[2:]:
- macho_standalone.standaloneApp(dn)
-
- elif gCommand in ('help', '--help'):
- print_usage(sys.stdout)
- sys.exit(0)
-
- else:
- print_usage(sys.stderr)
- sys.exit(1)
-
-
-if __name__ == "__main__":
- main()
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/MachO.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/MachO.cpython-36.pyc
deleted file mode 100644
index 4ba51e8..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/MachO.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/MachOGraph.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/MachOGraph.cpython-36.pyc
deleted file mode 100644
index 34fd823..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/MachOGraph.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/MachOStandalone.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/MachOStandalone.cpython-36.pyc
deleted file mode 100644
index ae1f812..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/MachOStandalone.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/SymbolTable.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/SymbolTable.cpython-36.pyc
deleted file mode 100644
index 364dc79..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/SymbolTable.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/__init__.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/__init__.cpython-36.pyc
deleted file mode 100644
index 5e90c11..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/__init__.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/__main__.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/__main__.cpython-36.pyc
deleted file mode 100644
index 2fd253f..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/__main__.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/_cmdline.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/_cmdline.cpython-36.pyc
deleted file mode 100644
index 084c90b..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/_cmdline.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/dyld.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/dyld.cpython-36.pyc
deleted file mode 100644
index e797532..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/dyld.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/dylib.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/dylib.cpython-36.pyc
deleted file mode 100644
index c73c4ea..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/dylib.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/framework.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/framework.cpython-36.pyc
deleted file mode 100644
index 4404dde..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/framework.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/itergraphreport.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/itergraphreport.cpython-36.pyc
deleted file mode 100644
index a812432..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/itergraphreport.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/mach_o.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/mach_o.cpython-36.pyc
deleted file mode 100644
index ab8aad2..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/mach_o.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/macho_dump.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/macho_dump.cpython-36.pyc
deleted file mode 100644
index b61b0b9..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/macho_dump.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/macho_find.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/macho_find.cpython-36.pyc
deleted file mode 100644
index b365e0e..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/macho_find.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/macho_standalone.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/macho_standalone.cpython-36.pyc
deleted file mode 100644
index 9c6a47a..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/macho_standalone.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/ptypes.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/ptypes.cpython-36.pyc
deleted file mode 100644
index c7de949..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/ptypes.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/util.cpython-36.pyc b/app/venv/lib/python3.6/site-packages/macholib/__pycache__/util.cpython-36.pyc
deleted file mode 100644
index 08485a0..0000000
Binary files a/app/venv/lib/python3.6/site-packages/macholib/__pycache__/util.cpython-36.pyc and /dev/null differ
diff --git a/app/venv/lib/python3.6/site-packages/macholib/_cmdline.py b/app/venv/lib/python3.6/site-packages/macholib/_cmdline.py
deleted file mode 100644
index c622733..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib/_cmdline.py
+++ /dev/null
@@ -1,48 +0,0 @@
-"""
-Internal helpers for basic commandline tools
-"""
-from __future__ import print_function, absolute_import
-import os
-import sys
-
-from macholib.util import is_platform_file
-
-
-def check_file(fp, path, callback):
- if not os.path.exists(path):
- print('%s: %s: No such file or directory' % (
- sys.argv[0], path), file=sys.stderr)
- return 1
-
- try:
- is_plat = is_platform_file(path)
-
- except IOError as msg:
- print('%s: %s: %s' % (sys.argv[0], path, msg), file=sys.stderr)
- return 1
-
- else:
- if is_plat:
- callback(fp, path)
- return 0
-
-
-def main(callback):
- args = sys.argv[1:]
- name = os.path.basename(sys.argv[0])
- err = 0
-
- if not args:
- print("Usage: %s filename..." % (name,), file=sys.stderr)
- return 1
-
- for base in args:
- if os.path.isdir(base):
- for root, dirs, files in os.walk(base):
- for fn in files:
- err |= check_file(
- sys.stdout, os.path.join(root, fn), callback)
- else:
- err |= check_file(sys.stdout, base, callback)
-
- return err
diff --git a/app/venv/lib/python3.6/site-packages/macholib/dyld.py b/app/venv/lib/python3.6/site-packages/macholib/dyld.py
deleted file mode 100644
index 1157ebf..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib/dyld.py
+++ /dev/null
@@ -1,190 +0,0 @@
-"""
-dyld emulation
-"""
-
-from itertools import chain
-
-import os
-import sys
-
-from macholib.framework import framework_info
-from macholib.dylib import dylib_info
-
-__all__ = [
- 'dyld_find', 'framework_find',
- 'framework_info', 'dylib_info',
-]
-
-# These are the defaults as per man dyld(1)
-#
-_DEFAULT_FRAMEWORK_FALLBACK = [
- os.path.expanduser("~/Library/Frameworks"),
- "/Library/Frameworks",
- "/Network/Library/Frameworks",
- "/System/Library/Frameworks",
-]
-
-_DEFAULT_LIBRARY_FALLBACK = [
- os.path.expanduser("~/lib"),
- "/usr/local/lib",
- "/lib",
- "/usr/lib",
-]
-
-# XXX: Is this function still needed?
-if sys.version_info[0] == 2:
- def _ensure_utf8(s):
- if isinstance(s, unicode): # noqa: F821
- return s.encode('utf8')
- return s
-else:
- def _ensure_utf8(s):
- if s is not None and not isinstance(s, str):
- raise ValueError(s)
- return s
-
-
-def _dyld_env(env, var):
- if env is None:
- env = os.environ
- rval = env.get(var)
- if rval is None or rval == '':
- return []
- return rval.split(':')
-
-
-def dyld_image_suffix(env=None):
- if env is None:
- env = os.environ
- return env.get('DYLD_IMAGE_SUFFIX')
-
-
-def dyld_framework_path(env=None):
- return _dyld_env(env, 'DYLD_FRAMEWORK_PATH')
-
-
-def dyld_library_path(env=None):
- return _dyld_env(env, 'DYLD_LIBRARY_PATH')
-
-
-def dyld_fallback_framework_path(env=None):
- return _dyld_env(env, 'DYLD_FALLBACK_FRAMEWORK_PATH')
-
-
-def dyld_fallback_library_path(env=None):
- return _dyld_env(env, 'DYLD_FALLBACK_LIBRARY_PATH')
-
-
-def dyld_image_suffix_search(iterator, env=None):
- """For a potential path iterator, add DYLD_IMAGE_SUFFIX semantics"""
- suffix = dyld_image_suffix(env)
- if suffix is None:
- return iterator
-
- def _inject(iterator=iterator, suffix=suffix):
- for path in iterator:
- if path.endswith('.dylib'):
- yield path[:-len('.dylib')] + suffix + '.dylib'
- else:
- yield path + suffix
- yield path
-
- return _inject()
-
-
-def dyld_override_search(name, env=None):
- # If DYLD_FRAMEWORK_PATH is set and this dylib_name is a
- # framework name, use the first file that exists in the framework
- # path if any. If there is none go on to search the DYLD_LIBRARY_PATH
- # if any.
-
- framework = framework_info(name)
-
- if framework is not None:
- for path in dyld_framework_path(env):
- yield os.path.join(path, framework['name'])
-
- # If DYLD_LIBRARY_PATH is set then use the first file that exists
- # in the path. If none use the original name.
- for path in dyld_library_path(env):
- yield os.path.join(path, os.path.basename(name))
-
-
-def dyld_executable_path_search(name, executable_path=None):
- # If we haven't done any searching and found a library and the
- # dylib_name starts with "@executable_path/" then construct the
- # library name.
- if name.startswith('@executable_path/') and executable_path is not None:
- yield os.path.join(executable_path, name[len('@executable_path/'):])
-
-
-def dyld_loader_search(name, loader_path=None):
- # If we haven't done any searching and found a library and the
- # dylib_name starts with "@loader_path/" then construct the
- # library name.
- if name.startswith('@loader_path/') and loader_path is not None:
- yield os.path.join(loader_path, name[len('@loader_path/'):])
-
-
-def dyld_default_search(name, env=None):
- yield name
-
- framework = framework_info(name)
-
- if framework is not None:
- fallback_framework_path = dyld_fallback_framework_path(env)
-
- if fallback_framework_path:
- for path in fallback_framework_path:
- yield os.path.join(path, framework['name'])
-
- else:
- for path in _DEFAULT_FRAMEWORK_FALLBACK:
- yield os.path.join(path, framework['name'])
-
- fallback_library_path = dyld_fallback_library_path(env)
- if fallback_library_path:
- for path in fallback_library_path:
- yield os.path.join(path, os.path.basename(name))
-
- else:
- for path in _DEFAULT_LIBRARY_FALLBACK:
- yield os.path.join(path, os.path.basename(name))
-
-
-def dyld_find(name, executable_path=None, env=None, loader_path=None):
- """
- Find a library or framework using dyld semantics
- """
- name = _ensure_utf8(name)
- executable_path = _ensure_utf8(executable_path)
- for path in dyld_image_suffix_search(chain(
- dyld_override_search(name, env),
- dyld_executable_path_search(name, executable_path),
- dyld_loader_search(name, loader_path),
- dyld_default_search(name, env),
- ), env):
- if os.path.isfile(path):
- return path
- raise ValueError("dylib %s could not be found" % (name,))
-
-
-def framework_find(fn, executable_path=None, env=None):
- """
- Find a framework using dyld semantics in a very loose manner.
-
- Will take input such as:
- Python
- Python.framework
- Python.framework/Versions/Current
- """
- try:
- return dyld_find(fn, executable_path=executable_path, env=env)
- except ValueError:
- pass
- fmwk_index = fn.rfind('.framework')
- if fmwk_index == -1:
- fmwk_index = len(fn)
- fn += '.framework'
- fn = os.path.join(fn, os.path.basename(fn[:fmwk_index]))
- return dyld_find(fn, executable_path=executable_path, env=env)
diff --git a/app/venv/lib/python3.6/site-packages/macholib/dylib.py b/app/venv/lib/python3.6/site-packages/macholib/dylib.py
deleted file mode 100644
index 5b06b40..0000000
--- a/app/venv/lib/python3.6/site-packages/macholib/dylib.py
+++ /dev/null
@@ -1,43 +0,0 @@
-"""
-Generic dylib path manipulation
-"""
-
-import re
-
-__all__ = ['dylib_info']
-
-_DYLIB_RE = re.compile(r"""(?x)
-(?P