├── .DS_Store
├── .idea
├── .gitignore
├── binance-quantization.iml
├── encodings.xml
├── inspectionProfiles
│ └── profiles_settings.xml
├── misc.xml
├── modules.xml
└── vcs.xml
├── LICENSE
├── README.en.md
├── README.md
├── __init__.py
├── app
├── BinanceAPI.py
├── __init__.py
├── __pycache__
│ ├── BinanceAPI.cpython-38.pyc
│ ├── __init__.cpython-38.pyc
│ ├── authorization.cpython-38.pyc
│ └── dingding.cpython-38.pyc
├── authorization.py
└── dingding.py
├── data
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-38.pyc
│ └── runBetData.cpython-38.pyc
├── data.json
└── runBetData.py
├── dev-ReadMe.md
├── eth-run.py
└── venv
├── bin
├── Activate.ps1
├── activate
├── activate.csh
├── activate.fish
├── chardetect
├── easy_install
├── easy_install-3.8
├── pip
├── pip3
├── pip3.8
├── python
├── python3
└── python3.8
├── lib
└── python3.8
│ └── site-packages
│ ├── certifi-2020.11.8.dist-info
│ ├── INSTALLER
│ ├── LICENSE
│ ├── METADATA
│ ├── RECORD
│ ├── WHEEL
│ └── top_level.txt
│ ├── certifi
│ ├── __init__.py
│ ├── __main__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── __main__.cpython-38.pyc
│ │ └── core.cpython-38.pyc
│ ├── cacert.pem
│ └── core.py
│ ├── chardet-3.0.4.dist-info
│ ├── DESCRIPTION.rst
│ ├── INSTALLER
│ ├── METADATA
│ ├── RECORD
│ ├── WHEEL
│ ├── entry_points.txt
│ ├── metadata.json
│ └── top_level.txt
│ ├── chardet
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── big5freq.cpython-38.pyc
│ │ ├── big5prober.cpython-38.pyc
│ │ ├── chardistribution.cpython-38.pyc
│ │ ├── charsetgroupprober.cpython-38.pyc
│ │ ├── charsetprober.cpython-38.pyc
│ │ ├── codingstatemachine.cpython-38.pyc
│ │ ├── compat.cpython-38.pyc
│ │ ├── cp949prober.cpython-38.pyc
│ │ ├── enums.cpython-38.pyc
│ │ ├── escprober.cpython-38.pyc
│ │ ├── escsm.cpython-38.pyc
│ │ ├── eucjpprober.cpython-38.pyc
│ │ ├── euckrfreq.cpython-38.pyc
│ │ ├── euckrprober.cpython-38.pyc
│ │ ├── euctwfreq.cpython-38.pyc
│ │ ├── euctwprober.cpython-38.pyc
│ │ ├── gb2312freq.cpython-38.pyc
│ │ ├── gb2312prober.cpython-38.pyc
│ │ ├── hebrewprober.cpython-38.pyc
│ │ ├── jisfreq.cpython-38.pyc
│ │ ├── jpcntx.cpython-38.pyc
│ │ ├── langbulgarianmodel.cpython-38.pyc
│ │ ├── langcyrillicmodel.cpython-38.pyc
│ │ ├── langgreekmodel.cpython-38.pyc
│ │ ├── langhebrewmodel.cpython-38.pyc
│ │ ├── langhungarianmodel.cpython-38.pyc
│ │ ├── langthaimodel.cpython-38.pyc
│ │ ├── langturkishmodel.cpython-38.pyc
│ │ ├── latin1prober.cpython-38.pyc
│ │ ├── mbcharsetprober.cpython-38.pyc
│ │ ├── mbcsgroupprober.cpython-38.pyc
│ │ ├── mbcssm.cpython-38.pyc
│ │ ├── sbcharsetprober.cpython-38.pyc
│ │ ├── sbcsgroupprober.cpython-38.pyc
│ │ ├── sjisprober.cpython-38.pyc
│ │ ├── universaldetector.cpython-38.pyc
│ │ ├── utf8prober.cpython-38.pyc
│ │ └── version.cpython-38.pyc
│ ├── big5freq.py
│ ├── big5prober.py
│ ├── chardistribution.py
│ ├── charsetgroupprober.py
│ ├── charsetprober.py
│ ├── cli
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ └── chardetect.cpython-38.pyc
│ │ └── chardetect.py
│ ├── codingstatemachine.py
│ ├── compat.py
│ ├── cp949prober.py
│ ├── enums.py
│ ├── escprober.py
│ ├── escsm.py
│ ├── eucjpprober.py
│ ├── euckrfreq.py
│ ├── euckrprober.py
│ ├── euctwfreq.py
│ ├── euctwprober.py
│ ├── gb2312freq.py
│ ├── gb2312prober.py
│ ├── hebrewprober.py
│ ├── jisfreq.py
│ ├── jpcntx.py
│ ├── langbulgarianmodel.py
│ ├── langcyrillicmodel.py
│ ├── langgreekmodel.py
│ ├── langhebrewmodel.py
│ ├── langhungarianmodel.py
│ ├── langthaimodel.py
│ ├── langturkishmodel.py
│ ├── latin1prober.py
│ ├── mbcharsetprober.py
│ ├── mbcsgroupprober.py
│ ├── mbcssm.py
│ ├── sbcharsetprober.py
│ ├── sbcsgroupprober.py
│ ├── sjisprober.py
│ ├── universaldetector.py
│ ├── utf8prober.py
│ └── version.py
│ ├── easy-install.pth
│ ├── idna-2.10.dist-info
│ ├── INSTALLER
│ ├── LICENSE.rst
│ ├── METADATA
│ ├── RECORD
│ ├── WHEEL
│ └── top_level.txt
│ ├── idna
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── codec.cpython-38.pyc
│ │ ├── compat.cpython-38.pyc
│ │ ├── core.cpython-38.pyc
│ │ ├── idnadata.cpython-38.pyc
│ │ ├── intranges.cpython-38.pyc
│ │ ├── package_data.cpython-38.pyc
│ │ └── uts46data.cpython-38.pyc
│ ├── codec.py
│ ├── compat.py
│ ├── core.py
│ ├── idnadata.py
│ ├── intranges.py
│ ├── package_data.py
│ └── uts46data.py
│ ├── pip-10.0.1-py3.8.egg
│ ├── EGG-INFO
│ │ ├── PKG-INFO
│ │ ├── SOURCES.txt
│ │ ├── dependency_links.txt
│ │ ├── entry_points.txt
│ │ ├── not-zip-safe
│ │ ├── requires.txt
│ │ └── top_level.txt
│ └── pip
│ │ ├── __init__.py
│ │ ├── __main__.py
│ │ ├── _internal
│ │ ├── __init__.py
│ │ ├── basecommand.py
│ │ ├── baseparser.py
│ │ ├── build_env.py
│ │ ├── cache.py
│ │ ├── cmdoptions.py
│ │ ├── commands
│ │ │ ├── __init__.py
│ │ │ ├── check.py
│ │ │ ├── completion.py
│ │ │ ├── configuration.py
│ │ │ ├── download.py
│ │ │ ├── freeze.py
│ │ │ ├── hash.py
│ │ │ ├── help.py
│ │ │ ├── install.py
│ │ │ ├── list.py
│ │ │ ├── search.py
│ │ │ ├── show.py
│ │ │ ├── uninstall.py
│ │ │ └── wheel.py
│ │ ├── compat.py
│ │ ├── configuration.py
│ │ ├── download.py
│ │ ├── exceptions.py
│ │ ├── index.py
│ │ ├── locations.py
│ │ ├── models
│ │ │ ├── __init__.py
│ │ │ └── index.py
│ │ ├── operations
│ │ │ ├── __init__.py
│ │ │ ├── check.py
│ │ │ ├── freeze.py
│ │ │ └── prepare.py
│ │ ├── pep425tags.py
│ │ ├── req
│ │ │ ├── __init__.py
│ │ │ ├── req_file.py
│ │ │ ├── req_install.py
│ │ │ ├── req_set.py
│ │ │ └── req_uninstall.py
│ │ ├── resolve.py
│ │ ├── status_codes.py
│ │ ├── utils
│ │ │ ├── __init__.py
│ │ │ ├── appdirs.py
│ │ │ ├── deprecation.py
│ │ │ ├── encoding.py
│ │ │ ├── filesystem.py
│ │ │ ├── glibc.py
│ │ │ ├── hashes.py
│ │ │ ├── logging.py
│ │ │ ├── misc.py
│ │ │ ├── outdated.py
│ │ │ ├── packaging.py
│ │ │ ├── setuptools_build.py
│ │ │ ├── temp_dir.py
│ │ │ ├── typing.py
│ │ │ └── ui.py
│ │ ├── vcs
│ │ │ ├── __init__.py
│ │ │ ├── bazaar.py
│ │ │ ├── git.py
│ │ │ ├── mercurial.py
│ │ │ └── subversion.py
│ │ └── wheel.py
│ │ └── _vendor
│ │ ├── __init__.py
│ │ ├── appdirs.py
│ │ ├── cachecontrol
│ │ ├── __init__.py
│ │ ├── _cmd.py
│ │ ├── adapter.py
│ │ ├── cache.py
│ │ ├── caches
│ │ │ ├── __init__.py
│ │ │ ├── file_cache.py
│ │ │ └── redis_cache.py
│ │ ├── compat.py
│ │ ├── controller.py
│ │ ├── filewrapper.py
│ │ ├── heuristics.py
│ │ ├── serialize.py
│ │ └── wrapper.py
│ │ ├── certifi
│ │ ├── __init__.py
│ │ ├── __main__.py
│ │ ├── cacert.pem
│ │ └── core.py
│ │ ├── chardet
│ │ ├── __init__.py
│ │ ├── big5freq.py
│ │ ├── big5prober.py
│ │ ├── chardistribution.py
│ │ ├── charsetgroupprober.py
│ │ ├── charsetprober.py
│ │ ├── cli
│ │ │ ├── __init__.py
│ │ │ └── chardetect.py
│ │ ├── codingstatemachine.py
│ │ ├── compat.py
│ │ ├── cp949prober.py
│ │ ├── enums.py
│ │ ├── escprober.py
│ │ ├── escsm.py
│ │ ├── eucjpprober.py
│ │ ├── euckrfreq.py
│ │ ├── euckrprober.py
│ │ ├── euctwfreq.py
│ │ ├── euctwprober.py
│ │ ├── gb2312freq.py
│ │ ├── gb2312prober.py
│ │ ├── hebrewprober.py
│ │ ├── jisfreq.py
│ │ ├── jpcntx.py
│ │ ├── langbulgarianmodel.py
│ │ ├── langcyrillicmodel.py
│ │ ├── langgreekmodel.py
│ │ ├── langhebrewmodel.py
│ │ ├── langhungarianmodel.py
│ │ ├── langthaimodel.py
│ │ ├── langturkishmodel.py
│ │ ├── latin1prober.py
│ │ ├── mbcharsetprober.py
│ │ ├── mbcsgroupprober.py
│ │ ├── mbcssm.py
│ │ ├── sbcharsetprober.py
│ │ ├── sbcsgroupprober.py
│ │ ├── sjisprober.py
│ │ ├── universaldetector.py
│ │ ├── utf8prober.py
│ │ └── version.py
│ │ ├── colorama
│ │ ├── __init__.py
│ │ ├── ansi.py
│ │ ├── ansitowin32.py
│ │ ├── initialise.py
│ │ ├── win32.py
│ │ └── winterm.py
│ │ ├── distlib
│ │ ├── __init__.py
│ │ ├── _backport
│ │ │ ├── __init__.py
│ │ │ ├── misc.py
│ │ │ ├── shutil.py
│ │ │ ├── sysconfig.cfg
│ │ │ ├── sysconfig.py
│ │ │ └── tarfile.py
│ │ ├── compat.py
│ │ ├── database.py
│ │ ├── index.py
│ │ ├── locators.py
│ │ ├── manifest.py
│ │ ├── markers.py
│ │ ├── metadata.py
│ │ ├── resources.py
│ │ ├── scripts.py
│ │ ├── t32.exe
│ │ ├── t64.exe
│ │ ├── util.py
│ │ ├── version.py
│ │ ├── w32.exe
│ │ ├── w64.exe
│ │ └── wheel.py
│ │ ├── distro.py
│ │ ├── html5lib
│ │ ├── __init__.py
│ │ ├── _ihatexml.py
│ │ ├── _inputstream.py
│ │ ├── _tokenizer.py
│ │ ├── _trie
│ │ │ ├── __init__.py
│ │ │ ├── _base.py
│ │ │ ├── datrie.py
│ │ │ └── py.py
│ │ ├── _utils.py
│ │ ├── constants.py
│ │ ├── filters
│ │ │ ├── __init__.py
│ │ │ ├── alphabeticalattributes.py
│ │ │ ├── base.py
│ │ │ ├── inject_meta_charset.py
│ │ │ ├── lint.py
│ │ │ ├── optionaltags.py
│ │ │ ├── sanitizer.py
│ │ │ └── whitespace.py
│ │ ├── html5parser.py
│ │ ├── serializer.py
│ │ ├── treeadapters
│ │ │ ├── __init__.py
│ │ │ ├── genshi.py
│ │ │ └── sax.py
│ │ ├── treebuilders
│ │ │ ├── __init__.py
│ │ │ ├── base.py
│ │ │ ├── dom.py
│ │ │ ├── etree.py
│ │ │ └── etree_lxml.py
│ │ └── treewalkers
│ │ │ ├── __init__.py
│ │ │ ├── base.py
│ │ │ ├── dom.py
│ │ │ ├── etree.py
│ │ │ ├── etree_lxml.py
│ │ │ └── genshi.py
│ │ ├── idna
│ │ ├── __init__.py
│ │ ├── codec.py
│ │ ├── compat.py
│ │ ├── core.py
│ │ ├── idnadata.py
│ │ ├── intranges.py
│ │ ├── package_data.py
│ │ └── uts46data.py
│ │ ├── ipaddress.py
│ │ ├── lockfile
│ │ ├── __init__.py
│ │ ├── linklockfile.py
│ │ ├── mkdirlockfile.py
│ │ ├── pidlockfile.py
│ │ ├── sqlitelockfile.py
│ │ └── symlinklockfile.py
│ │ ├── msgpack
│ │ ├── __init__.py
│ │ ├── _version.py
│ │ ├── exceptions.py
│ │ └── fallback.py
│ │ ├── packaging
│ │ ├── __about__.py
│ │ ├── __init__.py
│ │ ├── _compat.py
│ │ ├── _structures.py
│ │ ├── markers.py
│ │ ├── requirements.py
│ │ ├── specifiers.py
│ │ ├── utils.py
│ │ └── version.py
│ │ ├── pkg_resources
│ │ ├── __init__.py
│ │ └── py31compat.py
│ │ ├── progress
│ │ ├── __init__.py
│ │ ├── bar.py
│ │ ├── counter.py
│ │ ├── helpers.py
│ │ └── spinner.py
│ │ ├── pyparsing.py
│ │ ├── pytoml
│ │ ├── __init__.py
│ │ ├── core.py
│ │ ├── parser.py
│ │ └── writer.py
│ │ ├── requests
│ │ ├── __init__.py
│ │ ├── __version__.py
│ │ ├── _internal_utils.py
│ │ ├── adapters.py
│ │ ├── api.py
│ │ ├── auth.py
│ │ ├── certs.py
│ │ ├── compat.py
│ │ ├── cookies.py
│ │ ├── exceptions.py
│ │ ├── help.py
│ │ ├── hooks.py
│ │ ├── models.py
│ │ ├── packages.py
│ │ ├── sessions.py
│ │ ├── status_codes.py
│ │ ├── structures.py
│ │ └── utils.py
│ │ ├── retrying.py
│ │ ├── six.py
│ │ ├── urllib3
│ │ ├── __init__.py
│ │ ├── _collections.py
│ │ ├── connection.py
│ │ ├── connectionpool.py
│ │ ├── contrib
│ │ │ ├── __init__.py
│ │ │ ├── _securetransport
│ │ │ │ ├── __init__.py
│ │ │ │ ├── bindings.py
│ │ │ │ └── low_level.py
│ │ │ ├── appengine.py
│ │ │ ├── ntlmpool.py
│ │ │ ├── pyopenssl.py
│ │ │ ├── securetransport.py
│ │ │ └── socks.py
│ │ ├── exceptions.py
│ │ ├── fields.py
│ │ ├── filepost.py
│ │ ├── packages
│ │ │ ├── __init__.py
│ │ │ ├── backports
│ │ │ │ ├── __init__.py
│ │ │ │ └── makefile.py
│ │ │ ├── ordered_dict.py
│ │ │ ├── six.py
│ │ │ └── ssl_match_hostname
│ │ │ │ ├── __init__.py
│ │ │ │ └── _implementation.py
│ │ ├── poolmanager.py
│ │ ├── request.py
│ │ ├── response.py
│ │ └── util
│ │ │ ├── __init__.py
│ │ │ ├── connection.py
│ │ │ ├── request.py
│ │ │ ├── response.py
│ │ │ ├── retry.py
│ │ │ ├── selectors.py
│ │ │ ├── ssl_.py
│ │ │ ├── timeout.py
│ │ │ ├── url.py
│ │ │ └── wait.py
│ │ └── webencodings
│ │ ├── __init__.py
│ │ ├── labels.py
│ │ ├── mklabels.py
│ │ ├── tests.py
│ │ └── x_user_defined.py
│ ├── requests-2.25.0.dist-info
│ ├── INSTALLER
│ ├── LICENSE
│ ├── METADATA
│ ├── RECORD
│ ├── WHEEL
│ └── top_level.txt
│ ├── requests
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── __version__.cpython-38.pyc
│ │ ├── _internal_utils.cpython-38.pyc
│ │ ├── adapters.cpython-38.pyc
│ │ ├── api.cpython-38.pyc
│ │ ├── auth.cpython-38.pyc
│ │ ├── certs.cpython-38.pyc
│ │ ├── compat.cpython-38.pyc
│ │ ├── cookies.cpython-38.pyc
│ │ ├── exceptions.cpython-38.pyc
│ │ ├── help.cpython-38.pyc
│ │ ├── hooks.cpython-38.pyc
│ │ ├── models.cpython-38.pyc
│ │ ├── packages.cpython-38.pyc
│ │ ├── sessions.cpython-38.pyc
│ │ ├── status_codes.cpython-38.pyc
│ │ ├── structures.cpython-38.pyc
│ │ └── utils.cpython-38.pyc
│ ├── __version__.py
│ ├── _internal_utils.py
│ ├── adapters.py
│ ├── api.py
│ ├── auth.py
│ ├── certs.py
│ ├── compat.py
│ ├── cookies.py
│ ├── exceptions.py
│ ├── help.py
│ ├── hooks.py
│ ├── models.py
│ ├── packages.py
│ ├── sessions.py
│ ├── status_codes.py
│ ├── structures.py
│ └── utils.py
│ ├── setuptools-39.1.0-py3.8.egg
│ ├── setuptools.pth
│ ├── urllib3-1.26.2.dist-info
│ ├── INSTALLER
│ ├── LICENSE.txt
│ ├── METADATA
│ ├── RECORD
│ ├── WHEEL
│ └── top_level.txt
│ └── urllib3
│ ├── __init__.py
│ ├── __pycache__
│ ├── __init__.cpython-38.pyc
│ ├── _collections.cpython-38.pyc
│ ├── _version.cpython-38.pyc
│ ├── connection.cpython-38.pyc
│ ├── connectionpool.cpython-38.pyc
│ ├── exceptions.cpython-38.pyc
│ ├── fields.cpython-38.pyc
│ ├── filepost.cpython-38.pyc
│ ├── poolmanager.cpython-38.pyc
│ ├── request.cpython-38.pyc
│ └── response.cpython-38.pyc
│ ├── _collections.py
│ ├── _version.py
│ ├── connection.py
│ ├── connectionpool.py
│ ├── contrib
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── _appengine_environ.cpython-38.pyc
│ │ ├── appengine.cpython-38.pyc
│ │ ├── ntlmpool.cpython-38.pyc
│ │ ├── pyopenssl.cpython-38.pyc
│ │ ├── securetransport.cpython-38.pyc
│ │ └── socks.cpython-38.pyc
│ ├── _appengine_environ.py
│ ├── _securetransport
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ ├── bindings.cpython-38.pyc
│ │ │ └── low_level.cpython-38.pyc
│ │ ├── bindings.py
│ │ └── low_level.py
│ ├── appengine.py
│ ├── ntlmpool.py
│ ├── pyopenssl.py
│ ├── securetransport.py
│ └── socks.py
│ ├── exceptions.py
│ ├── fields.py
│ ├── filepost.py
│ ├── packages
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ └── six.cpython-38.pyc
│ ├── backports
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-38.pyc
│ │ │ └── makefile.cpython-38.pyc
│ │ └── makefile.py
│ ├── six.py
│ └── ssl_match_hostname
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ └── _implementation.cpython-38.pyc
│ │ └── _implementation.py
│ ├── poolmanager.py
│ ├── request.py
│ ├── response.py
│ └── util
│ ├── __init__.py
│ ├── __pycache__
│ ├── __init__.cpython-38.pyc
│ ├── connection.cpython-38.pyc
│ ├── proxy.cpython-38.pyc
│ ├── queue.cpython-38.pyc
│ ├── request.cpython-38.pyc
│ ├── response.cpython-38.pyc
│ ├── retry.cpython-38.pyc
│ ├── ssl_.cpython-38.pyc
│ ├── ssltransport.cpython-38.pyc
│ ├── timeout.cpython-38.pyc
│ ├── url.cpython-38.pyc
│ └── wait.cpython-38.pyc
│ ├── connection.py
│ ├── proxy.py
│ ├── queue.py
│ ├── request.py
│ ├── response.py
│ ├── retry.py
│ ├── ssl_.py
│ ├── ssltransport.py
│ ├── timeout.py
│ ├── url.py
│ └── wait.py
├── pip-selfcheck.json
└── pyvenv.cfg
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/.DS_Store
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /workspace.xml
3 |
--------------------------------------------------------------------------------
/.idea/binance-quantization.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 幸福村的码农
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.en.md:
--------------------------------------------------------------------------------
1 | # 币安量化-网格交易
2 |
3 | #### Description
4 | 币安交易所-量化交易-网格策略实践
5 |
6 | #### Software Architecture
7 | Software architecture description
8 |
9 | #### Installation
10 |
11 | 1. xxxx
12 | 2. xxxx
13 | 3. xxxx
14 |
15 | #### Instructions
16 |
17 | 1. xxxx
18 | 2. xxxx
19 | 3. xxxx
20 |
21 | #### Contribution
22 |
23 | 1. Fork the repository
24 | 2. Create Feat_xxx branch
25 | 3. Commit your code
26 | 4. Create Pull Request
27 |
28 |
29 | #### Gitee Feature
30 |
31 | 1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
32 | 2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
33 | 3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
34 | 4. The most valuable open source project [GVP](https://gitee.com/gvp)
35 | 5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
36 | 6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
37 |
--------------------------------------------------------------------------------
/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/__init__.py
--------------------------------------------------------------------------------
/app/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/app/__init__.py
--------------------------------------------------------------------------------
/app/__pycache__/BinanceAPI.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/app/__pycache__/BinanceAPI.cpython-38.pyc
--------------------------------------------------------------------------------
/app/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/app/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/app/__pycache__/authorization.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/app/__pycache__/authorization.cpython-38.pyc
--------------------------------------------------------------------------------
/app/__pycache__/dingding.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/app/__pycache__/dingding.cpython-38.pyc
--------------------------------------------------------------------------------
/app/authorization.py:
--------------------------------------------------------------------------------
1 | # Get an Key and Secret
2 | # https://www.binance.com/restapipub.html
3 |
4 | api_key = ''
5 | api_secret = ''
6 | recv_window = 5000
7 |
8 | dingding_token = ""
9 |
--------------------------------------------------------------------------------
/app/dingding.py:
--------------------------------------------------------------------------------
1 | import requests,json
2 |
3 | # windows
4 | from app.authorization import dingding_token, recv_window,api_secret,api_key
5 | from app.BinanceAPI import BinanceAPI
6 | # linux
7 | # from app.authorization import dingding_token
8 |
9 | class Message:
10 |
11 | def buy_limit_msg(self,market, quantity, rate):
12 | try:
13 | res = BinanceAPI(api_key,api_secret).buy_limit(market, quantity, rate)
14 | if res['orderId']:
15 | buy_info = "报警:币种为:{cointype}。买单价为:{price}。买单量为:{num}".format(cointype=market,price=rate,num=quantity)
16 | self.dingding_warn(buy_info)
17 | return res
18 | except BaseException as e:
19 | error_info = "报警:币种为:{cointype},买单失败.api返回内容为:{reject}".format(cointype=market,reject=res['msg'])
20 | self.dingding_warn(error_info)
21 |
22 |
23 | def sell_limit_msg(self,market, quantity, rate):
24 | '''
25 | :param market:
26 | :param quantity: 数量
27 | :param rate: 价格
28 | :return:
29 | '''
30 | try:
31 | res = BinanceAPI(api_key,api_secret).sell_limit(market, quantity, rate)
32 | if res['orderId']:
33 | buy_info = "报警:币种为:{cointype}。卖单价为:{price}。卖单量为:{num}".format(cointype=market,price=rate,num=quantity)
34 | self.dingding_warn(buy_info)
35 | return res
36 | except BaseException as e:
37 | error_info = "报警:币种为:{cointype},卖单失败.api返回内容为:{reject}".format(cointype=market,reject=res['msg'])
38 | self.dingding_warn(error_info+str(res))
39 | return res
40 |
41 | def dingding_warn(self,text):
42 | headers = {'Content-Type': 'application/json;charset=utf-8'}
43 | api_url = "https://oapi.dingtalk.com/robot/send?access_token=%s" % dingding_token
44 | json_text = self._msg(text)
45 | requests.post(api_url, json.dumps(json_text), headers=headers).content
46 |
47 | def _msg(self,text):
48 | json_text = {
49 | "msgtype": "text",
50 | "at": {
51 | "atMobiles": [
52 | "11111"
53 | ],
54 | "isAtAll": False
55 | },
56 | "text": {
57 | "content": text
58 | }
59 | }
60 | return json_text
61 |
62 | if __name__ == "__main__":
63 | msg = Message()
64 | print(msg.buy_limit_msg("EOSUSDT",4,2))
--------------------------------------------------------------------------------
/data/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/data/__init__.py
--------------------------------------------------------------------------------
/data/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/data/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/data/__pycache__/runBetData.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/data/__pycache__/runBetData.cpython-38.pyc
--------------------------------------------------------------------------------
/data/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "runBet": {
3 | "next_buy_price": 568.1,
4 | "grid_sell_price": 627.9,
5 | "step": 0
6 | },
7 | "config": {
8 | "profit_ratio": 6,
9 | "double_throw_ratio": 5,
10 | "cointype": "ETHUSDT",
11 | "quantity": [0.25,0.3,0.35,0.4,0.45,0.5]
12 | }
13 | }
--------------------------------------------------------------------------------
/eth-run.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from app.BinanceAPI import BinanceAPI
3 | from app.authorization import api_key,api_secret
4 | from data.runBetData import RunBetData
5 | from app.dingding import Message
6 | import time
7 |
8 | binan = BinanceAPI(api_key,api_secret)
9 | runbet = RunBetData()
10 | msg = Message()
11 |
12 | class Run_Main():
13 |
14 | def __init__(self):
15 | self.coinType = runbet.get_cointype() # 交易币种
16 | pass
17 |
18 |
19 | def loop_run(self):
20 | while True:
21 | cur_market_price = binan.get_ticker_price(runbet.get_cointype()) # 当前交易对市价
22 | grid_buy_price = runbet.get_buy_price() # 当前网格买入价格
23 | grid_sell_price = runbet.get_sell_price() # 当前网格卖出价格
24 | quantity = runbet.get_quantity() # 买入量
25 | step = runbet.get_step() # 当前步数
26 |
27 | if grid_buy_price >= cur_market_price: # 是否满足买入价
28 | res = msg.buy_limit_msg(self.coinType, quantity, grid_buy_price)
29 | if res['orderId']: # 挂单成功
30 | runbet.modify_price(grid_buy_price, step+1) #修改data.json中价格、当前步数
31 | time.sleep(60*2) # 挂单后,停止运行1分钟
32 | else:
33 | break
34 |
35 | elif grid_sell_price < cur_market_price: # 是否满足卖出价
36 | if step==0: # setp=0 防止踏空,跟随价格上涨
37 | runbet.modify_price(grid_sell_price,step)
38 | else:
39 | res = msg.sell_limit_msg(self.coinType, runbet.get_quantity(False), grid_sell_price)
40 | if res['orderId']:
41 | runbet.modify_price(grid_sell_price, step - 1)
42 | time.sleep(60*2) # 挂单后,停止运行1分钟
43 | else:
44 | break
45 | else:
46 | print("当前市价:{market_price}。未能满足交易,继续运行".format(market_price = cur_market_price))
47 |
48 |
49 | if __name__ == "__main__":
50 | instance = Run_Main()
51 | try:
52 | instance.loop_run()
53 | except Exception as e:
54 | error_info = "报警:币种{coin},服务停止.错误原因{info}".format(coin=instance.coinType,info=str(e))
55 | msg.dingding_warn(error_info)
56 |
57 | # 调试看报错运行下面,正式运行用上面
58 | # if __name__ == "__main__":
59 | # instance = Run_Main()
60 | # instance.loop_run()
61 |
--------------------------------------------------------------------------------
/venv/bin/activate.csh:
--------------------------------------------------------------------------------
1 | # This file must be used with "source bin/activate.csh" *from csh*.
2 | # You cannot run it directly.
3 | # Created by Davide Di Blasi .
4 | # Ported to Python 3.3 venv by Andrew Svetlov
5 |
6 | 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'
7 |
8 | # Unset irrelevant variables.
9 | deactivate nondestructive
10 |
11 | setenv VIRTUAL_ENV "/Users/xingfucundeerwa/Desktop/github/binance/binance-quantization/venv"
12 |
13 | set _OLD_VIRTUAL_PATH="$PATH"
14 | setenv PATH "$VIRTUAL_ENV/bin:$PATH"
15 |
16 |
17 | set _OLD_VIRTUAL_PROMPT="$prompt"
18 |
19 | if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
20 | if ("venv" != "") then
21 | set env_name = "venv"
22 | else
23 | if (`basename "VIRTUAL_ENV"` == "__") then
24 | # special case for Aspen magic directories
25 | # see http://www.zetadev.com/software/aspen/
26 | set env_name = `basename \`dirname "$VIRTUAL_ENV"\``
27 | else
28 | set env_name = `basename "$VIRTUAL_ENV"`
29 | endif
30 | endif
31 | set prompt = "[$env_name] $prompt"
32 | unset env_name
33 | endif
34 |
35 | alias pydoc python -m pydoc
36 |
37 | rehash
38 |
--------------------------------------------------------------------------------
/venv/bin/chardetect:
--------------------------------------------------------------------------------
1 | #!/Users/xingfucundeerwa/Desktop/github/binance/binance-quantization/venv/bin/python
2 |
3 | # -*- coding: utf-8 -*-
4 | import re
5 | import sys
6 |
7 | from chardet.cli.chardetect import main
8 |
9 | if __name__ == '__main__':
10 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
11 | sys.exit(main())
12 |
--------------------------------------------------------------------------------
/venv/bin/easy_install:
--------------------------------------------------------------------------------
1 | #!/Users/xingfucundeerwa/Desktop/github/binance/binance-quantization/venv/bin/python
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==39.1.0','console_scripts','easy_install'
3 | __requires__ = 'setuptools==39.1.0'
4 | import re
5 | import sys
6 | from pkg_resources import load_entry_point
7 |
8 | if __name__ == '__main__':
9 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
10 | sys.exit(
11 | load_entry_point('setuptools==39.1.0', 'console_scripts', 'easy_install')()
12 | )
13 |
--------------------------------------------------------------------------------
/venv/bin/easy_install-3.8:
--------------------------------------------------------------------------------
1 | #!/Users/xingfucundeerwa/Desktop/github/binance/binance-quantization/venv/bin/python
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==39.1.0','console_scripts','easy_install-3.8'
3 | __requires__ = 'setuptools==39.1.0'
4 | import re
5 | import sys
6 | from pkg_resources import load_entry_point
7 |
8 | if __name__ == '__main__':
9 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
10 | sys.exit(
11 | load_entry_point('setuptools==39.1.0', 'console_scripts', 'easy_install-3.8')()
12 | )
13 |
--------------------------------------------------------------------------------
/venv/bin/pip:
--------------------------------------------------------------------------------
1 | #!/Users/xingfucundeerwa/Desktop/github/binance/binance-quantization/venv/bin/python
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'pip==10.0.1','console_scripts','pip'
3 | __requires__ = 'pip==10.0.1'
4 | import re
5 | import sys
6 | from pkg_resources import load_entry_point
7 |
8 | if __name__ == '__main__':
9 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
10 | sys.exit(
11 | load_entry_point('pip==10.0.1', 'console_scripts', 'pip')()
12 | )
13 |
--------------------------------------------------------------------------------
/venv/bin/pip3:
--------------------------------------------------------------------------------
1 | #!/Users/xingfucundeerwa/Desktop/github/binance/binance-quantization/venv/bin/python
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'pip==10.0.1','console_scripts','pip3'
3 | __requires__ = 'pip==10.0.1'
4 | import re
5 | import sys
6 | from pkg_resources import load_entry_point
7 |
8 | if __name__ == '__main__':
9 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
10 | sys.exit(
11 | load_entry_point('pip==10.0.1', 'console_scripts', 'pip3')()
12 | )
13 |
--------------------------------------------------------------------------------
/venv/bin/pip3.8:
--------------------------------------------------------------------------------
1 | #!/Users/xingfucundeerwa/Desktop/github/binance/binance-quantization/venv/bin/python
2 | # EASY-INSTALL-ENTRY-SCRIPT: 'pip==10.0.1','console_scripts','pip3.8'
3 | __requires__ = 'pip==10.0.1'
4 | import re
5 | import sys
6 | from pkg_resources import load_entry_point
7 |
8 | if __name__ == '__main__':
9 | sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
10 | sys.exit(
11 | load_entry_point('pip==10.0.1', 'console_scripts', 'pip3.8')()
12 | )
13 |
--------------------------------------------------------------------------------
/venv/bin/python:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/bin/python
--------------------------------------------------------------------------------
/venv/bin/python3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/bin/python3
--------------------------------------------------------------------------------
/venv/bin/python3.8:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/bin/python3.8
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/certifi-2020.11.8.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/certifi-2020.11.8.dist-info/LICENSE:
--------------------------------------------------------------------------------
1 | This packge contains a modified version of ca-bundle.crt:
2 |
3 | ca-bundle.crt -- Bundle of CA Root Certificates
4 |
5 | Certificate data from Mozilla as of: Thu Nov 3 19:04:19 2011#
6 | This is a bundle of X.509 certificates of public Certificate Authorities
7 | (CA). These were automatically extracted from Mozilla's root certificates
8 | file (certdata.txt). This file can be found in the mozilla source tree:
9 | http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1#
10 | It contains the certificates in PEM format and therefore
11 | can be directly used with curl / libcurl / php_curl, or with
12 | an Apache+mod_ssl webserver for SSL client authentication.
13 | Just configure this file as the SSLCACertificateFile.#
14 |
15 | ***** BEGIN LICENSE BLOCK *****
16 | This Source Code Form is subject to the terms of the Mozilla Public License,
17 | v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain
18 | one at http://mozilla.org/MPL/2.0/.
19 |
20 | ***** END LICENSE BLOCK *****
21 | @(#) $RCSfile: certdata.txt,v $ $Revision: 1.80 $ $Date: 2011/11/03 15:11:58 $
22 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/certifi-2020.11.8.dist-info/RECORD:
--------------------------------------------------------------------------------
1 | certifi/__init__.py,sha256=TocBfHrqAkQK91W5jNYhRH8KKizxkkXZBk68DTHj0xo,62
2 | certifi/__main__.py,sha256=xBBoj905TUWBLRGANOcf7oi6e-3dMP4cEoG9OyMs11g,243
3 | certifi/cacert.pem,sha256=U7iFT4_n-7XCfHpc8I46ad5kHuGvDSedla2fdbQoQUo,281608
4 | certifi/core.py,sha256=V0uyxKOYdz6ulDSusclrLmjbPgOXsD0BnEf0SQ7OnoE,2303
5 | certifi-2020.11.8.dist-info/LICENSE,sha256=anCkv2sBABbVmmS4rkrY3H9e8W8ftFPMLs13HFo0ETE,1048
6 | certifi-2020.11.8.dist-info/METADATA,sha256=LBPr6g1-mGhOtrMGg8DFzNp-V76vs5J38EKLzzJDbOM,2994
7 | certifi-2020.11.8.dist-info/WHEEL,sha256=ADKeyaGyKF5DwBNE0sRE5pvW-bSkFMJfBuhzZ3rceP4,110
8 | certifi-2020.11.8.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8
9 | certifi-2020.11.8.dist-info/RECORD,,
10 | certifi-2020.11.8.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
11 | certifi/__pycache__/__init__.cpython-38.pyc,,
12 | certifi/__pycache__/core.cpython-38.pyc,,
13 | certifi/__pycache__/__main__.cpython-38.pyc,,
14 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/certifi-2020.11.8.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.35.1)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/certifi-2020.11.8.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | certifi
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/certifi/__init__.py:
--------------------------------------------------------------------------------
1 | from .core import contents, where
2 |
3 | __version__ = "2020.11.08"
4 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/certifi/__main__.py:
--------------------------------------------------------------------------------
1 | import argparse
2 |
3 | from certifi import contents, where
4 |
5 | parser = argparse.ArgumentParser()
6 | parser.add_argument("-c", "--contents", action="store_true")
7 | args = parser.parse_args()
8 |
9 | if args.contents:
10 | print(contents())
11 | else:
12 | print(where())
13 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/certifi/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/certifi/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/certifi/__pycache__/__main__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/certifi/__pycache__/__main__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/certifi/__pycache__/core.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/certifi/__pycache__/core.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet-3.0.4.dist-info/DESCRIPTION.rst:
--------------------------------------------------------------------------------
1 | Chardet: The Universal Character Encoding Detector
2 | --------------------------------------------------
3 |
4 | .. image:: https://img.shields.io/travis/chardet/chardet/stable.svg
5 | :alt: Build status
6 | :target: https://travis-ci.org/chardet/chardet
7 |
8 | .. image:: https://img.shields.io/coveralls/chardet/chardet/stable.svg
9 | :target: https://coveralls.io/r/chardet/chardet
10 |
11 | .. image:: https://img.shields.io/pypi/v/chardet.svg
12 | :target: https://warehouse.python.org/project/chardet/
13 | :alt: Latest version on PyPI
14 |
15 | .. image:: https://img.shields.io/pypi/l/chardet.svg
16 | :alt: License
17 |
18 |
19 | Detects
20 | - ASCII, UTF-8, UTF-16 (2 variants), UTF-32 (4 variants)
21 | - Big5, GB2312, EUC-TW, HZ-GB-2312, ISO-2022-CN (Traditional and Simplified Chinese)
22 | - EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP (Japanese)
23 | - EUC-KR, ISO-2022-KR (Korean)
24 | - KOI8-R, MacCyrillic, IBM855, IBM866, ISO-8859-5, windows-1251 (Cyrillic)
25 | - ISO-8859-5, windows-1251 (Bulgarian)
26 | - ISO-8859-1, windows-1252 (Western European languages)
27 | - ISO-8859-7, windows-1253 (Greek)
28 | - ISO-8859-8, windows-1255 (Visual and Logical Hebrew)
29 | - TIS-620 (Thai)
30 |
31 | .. note::
32 | Our ISO-8859-2 and windows-1250 (Hungarian) probers have been temporarily
33 | disabled until we can retrain the models.
34 |
35 | Requires Python 2.6, 2.7, or 3.3+.
36 |
37 | Installation
38 | ------------
39 |
40 | Install from `PyPI `_::
41 |
42 | pip install chardet
43 |
44 | Documentation
45 | -------------
46 |
47 | For users, docs are now available at https://chardet.readthedocs.io/.
48 |
49 | Command-line Tool
50 | -----------------
51 |
52 | chardet comes with a command-line script which reports on the encodings of one
53 | or more files::
54 |
55 | % chardetect somefile someotherfile
56 | somefile: windows-1252 with confidence 0.5
57 | someotherfile: ascii with confidence 1.0
58 |
59 | About
60 | -----
61 |
62 | This is a continuation of Mark Pilgrim's excellent chardet. Previously, two
63 | versions needed to be maintained: one that supported python 2.x and one that
64 | supported python 3.x. We've recently merged with `Ian Cordasco `_'s
65 | `charade `_ fork, so now we have one
66 | coherent version that works for Python 2.6+.
67 |
68 | :maintainer: Dan Blanchard
69 |
70 |
71 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet-3.0.4.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet-3.0.4.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.29.0)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet-3.0.4.dist-info/entry_points.txt:
--------------------------------------------------------------------------------
1 | [console_scripts]
2 | chardetect = chardet.cli.chardetect:main
3 |
4 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet-3.0.4.dist-info/metadata.json:
--------------------------------------------------------------------------------
1 | {"classifiers": ["Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Linguistic"], "extensions": {"python.commands": {"wrap_console": {"chardetect": "chardet.cli.chardetect:main"}}, "python.details": {"contacts": [{"email": "dan.blanchard@gmail.com", "name": "Daniel Blanchard", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://github.com/chardet/chardet"}}, "python.exports": {"console_scripts": {"chardetect": "chardet.cli.chardetect:main"}}}, "generator": "bdist_wheel (0.29.0)", "keywords": ["encoding", "i18n", "xml"], "license": "LGPL", "metadata_version": "2.0", "name": "chardet", "summary": "Universal encoding detector for Python 2 and 3", "test_requires": [{"requires": ["hypothesis", "pytest"]}], "version": "3.0.4"}
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet-3.0.4.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | chardet
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__init__.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # This library is free software; you can redistribute it and/or
3 | # modify it under the terms of the GNU Lesser General Public
4 | # License as published by the Free Software Foundation; either
5 | # version 2.1 of the License, or (at your option) any later version.
6 | #
7 | # This library is distributed in the hope that it will be useful,
8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 | # Lesser General Public License for more details.
11 | #
12 | # You should have received a copy of the GNU Lesser General Public
13 | # License along with this library; if not, write to the Free Software
14 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
15 | # 02110-1301 USA
16 | ######################### END LICENSE BLOCK #########################
17 |
18 |
19 | from .compat import PY2, PY3
20 | from .universaldetector import UniversalDetector
21 | from .version import __version__, VERSION
22 |
23 |
24 | def detect(byte_str):
25 | """
26 | Detect the encoding of the given byte string.
27 |
28 | :param byte_str: The byte sequence to examine.
29 | :type byte_str: ``bytes`` or ``bytearray``
30 | """
31 | if not isinstance(byte_str, bytearray):
32 | if not isinstance(byte_str, bytes):
33 | raise TypeError('Expected object of type bytes or bytearray, got: '
34 | '{0}'.format(type(byte_str)))
35 | else:
36 | byte_str = bytearray(byte_str)
37 | detector = UniversalDetector()
38 | detector.feed(byte_str)
39 | return detector.close()
40 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/big5freq.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/big5freq.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/big5prober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/big5prober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/chardistribution.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/chardistribution.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/charsetgroupprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/charsetgroupprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/charsetprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/charsetprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/codingstatemachine.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/codingstatemachine.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/compat.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/compat.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/cp949prober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/cp949prober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/enums.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/enums.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/escprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/escprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/escsm.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/escsm.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/eucjpprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/eucjpprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/euckrfreq.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/euckrfreq.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/euckrprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/euckrprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/euctwfreq.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/euctwfreq.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/euctwprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/euctwprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/gb2312freq.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/gb2312freq.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/gb2312prober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/gb2312prober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/hebrewprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/hebrewprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/jisfreq.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/jisfreq.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/jpcntx.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/jpcntx.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/langbulgarianmodel.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/langbulgarianmodel.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/langcyrillicmodel.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/langcyrillicmodel.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/langgreekmodel.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/langgreekmodel.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/langhebrewmodel.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/langhebrewmodel.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/langhungarianmodel.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/langhungarianmodel.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/langthaimodel.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/langthaimodel.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/langturkishmodel.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/langturkishmodel.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/latin1prober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/latin1prober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/mbcharsetprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/mbcharsetprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/mbcsgroupprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/mbcsgroupprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/mbcssm.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/mbcssm.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/sbcharsetprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/sbcharsetprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/sbcsgroupprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/sbcsgroupprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/sjisprober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/sjisprober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/universaldetector.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/universaldetector.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/utf8prober.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/utf8prober.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/__pycache__/version.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/__pycache__/version.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/big5prober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is Mozilla Communicator client code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 1998
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | #
12 | # This library is free software; you can redistribute it and/or
13 | # modify it under the terms of the GNU Lesser General Public
14 | # License as published by the Free Software Foundation; either
15 | # version 2.1 of the License, or (at your option) any later version.
16 | #
17 | # This library is distributed in the hope that it will be useful,
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 | # Lesser General Public License for more details.
21 | #
22 | # You should have received a copy of the GNU Lesser General Public
23 | # License along with this library; if not, write to the Free Software
24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
25 | # 02110-1301 USA
26 | ######################### END LICENSE BLOCK #########################
27 |
28 | from .mbcharsetprober import MultiByteCharSetProber
29 | from .codingstatemachine import CodingStateMachine
30 | from .chardistribution import Big5DistributionAnalysis
31 | from .mbcssm import BIG5_SM_MODEL
32 |
33 |
34 | class Big5Prober(MultiByteCharSetProber):
35 | def __init__(self):
36 | super(Big5Prober, self).__init__()
37 | self.coding_sm = CodingStateMachine(BIG5_SM_MODEL)
38 | self.distribution_analyzer = Big5DistributionAnalysis()
39 | self.reset()
40 |
41 | @property
42 | def charset_name(self):
43 | return "Big5"
44 |
45 | @property
46 | def language(self):
47 | return "Chinese"
48 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/cli/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/cli/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/cli/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/cli/__pycache__/chardetect.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/chardet/cli/__pycache__/chardetect.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/compat.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # Contributor(s):
3 | # Dan Blanchard
4 | # Ian Cordasco
5 | #
6 | # This library is free software; you can redistribute it and/or
7 | # modify it under the terms of the GNU Lesser General Public
8 | # License as published by the Free Software Foundation; either
9 | # version 2.1 of the License, or (at your option) any later version.
10 | #
11 | # This library is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | # Lesser General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU Lesser General Public
17 | # License along with this library; if not, write to the Free Software
18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19 | # 02110-1301 USA
20 | ######################### END LICENSE BLOCK #########################
21 |
22 | import sys
23 |
24 |
25 | if sys.version_info < (3, 0):
26 | PY2 = True
27 | PY3 = False
28 | base_str = (str, unicode)
29 | text_type = unicode
30 | else:
31 | PY2 = False
32 | PY3 = True
33 | base_str = (bytes, str)
34 | text_type = str
35 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/cp949prober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is mozilla.org code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 1998
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | #
12 | # This library is free software; you can redistribute it and/or
13 | # modify it under the terms of the GNU Lesser General Public
14 | # License as published by the Free Software Foundation; either
15 | # version 2.1 of the License, or (at your option) any later version.
16 | #
17 | # This library is distributed in the hope that it will be useful,
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 | # Lesser General Public License for more details.
21 | #
22 | # You should have received a copy of the GNU Lesser General Public
23 | # License along with this library; if not, write to the Free Software
24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
25 | # 02110-1301 USA
26 | ######################### END LICENSE BLOCK #########################
27 |
28 | from .chardistribution import EUCKRDistributionAnalysis
29 | from .codingstatemachine import CodingStateMachine
30 | from .mbcharsetprober import MultiByteCharSetProber
31 | from .mbcssm import CP949_SM_MODEL
32 |
33 |
34 | class CP949Prober(MultiByteCharSetProber):
35 | def __init__(self):
36 | super(CP949Prober, self).__init__()
37 | self.coding_sm = CodingStateMachine(CP949_SM_MODEL)
38 | # NOTE: CP949 is a superset of EUC-KR, so the distribution should be
39 | # not different.
40 | self.distribution_analyzer = EUCKRDistributionAnalysis()
41 | self.reset()
42 |
43 | @property
44 | def charset_name(self):
45 | return "CP949"
46 |
47 | @property
48 | def language(self):
49 | return "Korean"
50 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/enums.py:
--------------------------------------------------------------------------------
1 | """
2 | All of the Enums that are used throughout the chardet package.
3 |
4 | :author: Dan Blanchard (dan.blanchard@gmail.com)
5 | """
6 |
7 |
8 | class InputState(object):
9 | """
10 | This enum represents the different states a universal detector can be in.
11 | """
12 | PURE_ASCII = 0
13 | ESC_ASCII = 1
14 | HIGH_BYTE = 2
15 |
16 |
17 | class LanguageFilter(object):
18 | """
19 | This enum represents the different language filters we can apply to a
20 | ``UniversalDetector``.
21 | """
22 | CHINESE_SIMPLIFIED = 0x01
23 | CHINESE_TRADITIONAL = 0x02
24 | JAPANESE = 0x04
25 | KOREAN = 0x08
26 | NON_CJK = 0x10
27 | ALL = 0x1F
28 | CHINESE = CHINESE_SIMPLIFIED | CHINESE_TRADITIONAL
29 | CJK = CHINESE | JAPANESE | KOREAN
30 |
31 |
32 | class ProbingState(object):
33 | """
34 | This enum represents the different states a prober can be in.
35 | """
36 | DETECTING = 0
37 | FOUND_IT = 1
38 | NOT_ME = 2
39 |
40 |
41 | class MachineState(object):
42 | """
43 | This enum represents the different states a state machine can be in.
44 | """
45 | START = 0
46 | ERROR = 1
47 | ITS_ME = 2
48 |
49 |
50 | class SequenceLikelihood(object):
51 | """
52 | This enum represents the likelihood of a character following the previous one.
53 | """
54 | NEGATIVE = 0
55 | UNLIKELY = 1
56 | LIKELY = 2
57 | POSITIVE = 3
58 |
59 | @classmethod
60 | def get_num_categories(cls):
61 | """:returns: The number of likelihood categories in the enum."""
62 | return 4
63 |
64 |
65 | class CharacterCategory(object):
66 | """
67 | This enum represents the different categories language models for
68 | ``SingleByteCharsetProber`` put characters into.
69 |
70 | Anything less than CONTROL is considered a letter.
71 | """
72 | UNDEFINED = 255
73 | LINE_BREAK = 254
74 | SYMBOL = 253
75 | DIGIT = 252
76 | CONTROL = 251
77 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/euckrprober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is mozilla.org code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 1998
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | #
12 | # This library is free software; you can redistribute it and/or
13 | # modify it under the terms of the GNU Lesser General Public
14 | # License as published by the Free Software Foundation; either
15 | # version 2.1 of the License, or (at your option) any later version.
16 | #
17 | # This library is distributed in the hope that it will be useful,
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 | # Lesser General Public License for more details.
21 | #
22 | # You should have received a copy of the GNU Lesser General Public
23 | # License along with this library; if not, write to the Free Software
24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
25 | # 02110-1301 USA
26 | ######################### END LICENSE BLOCK #########################
27 |
28 | from .mbcharsetprober import MultiByteCharSetProber
29 | from .codingstatemachine import CodingStateMachine
30 | from .chardistribution import EUCKRDistributionAnalysis
31 | from .mbcssm import EUCKR_SM_MODEL
32 |
33 |
34 | class EUCKRProber(MultiByteCharSetProber):
35 | def __init__(self):
36 | super(EUCKRProber, self).__init__()
37 | self.coding_sm = CodingStateMachine(EUCKR_SM_MODEL)
38 | self.distribution_analyzer = EUCKRDistributionAnalysis()
39 | self.reset()
40 |
41 | @property
42 | def charset_name(self):
43 | return "EUC-KR"
44 |
45 | @property
46 | def language(self):
47 | return "Korean"
48 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/euctwprober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is mozilla.org code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 1998
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | #
12 | # This library is free software; you can redistribute it and/or
13 | # modify it under the terms of the GNU Lesser General Public
14 | # License as published by the Free Software Foundation; either
15 | # version 2.1 of the License, or (at your option) any later version.
16 | #
17 | # This library is distributed in the hope that it will be useful,
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 | # Lesser General Public License for more details.
21 | #
22 | # You should have received a copy of the GNU Lesser General Public
23 | # License along with this library; if not, write to the Free Software
24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
25 | # 02110-1301 USA
26 | ######################### END LICENSE BLOCK #########################
27 |
28 | from .mbcharsetprober import MultiByteCharSetProber
29 | from .codingstatemachine import CodingStateMachine
30 | from .chardistribution import EUCTWDistributionAnalysis
31 | from .mbcssm import EUCTW_SM_MODEL
32 |
33 | class EUCTWProber(MultiByteCharSetProber):
34 | def __init__(self):
35 | super(EUCTWProber, self).__init__()
36 | self.coding_sm = CodingStateMachine(EUCTW_SM_MODEL)
37 | self.distribution_analyzer = EUCTWDistributionAnalysis()
38 | self.reset()
39 |
40 | @property
41 | def charset_name(self):
42 | return "EUC-TW"
43 |
44 | @property
45 | def language(self):
46 | return "Taiwan"
47 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/gb2312prober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is mozilla.org code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 1998
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | #
12 | # This library is free software; you can redistribute it and/or
13 | # modify it under the terms of the GNU Lesser General Public
14 | # License as published by the Free Software Foundation; either
15 | # version 2.1 of the License, or (at your option) any later version.
16 | #
17 | # This library is distributed in the hope that it will be useful,
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 | # Lesser General Public License for more details.
21 | #
22 | # You should have received a copy of the GNU Lesser General Public
23 | # License along with this library; if not, write to the Free Software
24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
25 | # 02110-1301 USA
26 | ######################### END LICENSE BLOCK #########################
27 |
28 | from .mbcharsetprober import MultiByteCharSetProber
29 | from .codingstatemachine import CodingStateMachine
30 | from .chardistribution import GB2312DistributionAnalysis
31 | from .mbcssm import GB2312_SM_MODEL
32 |
33 | class GB2312Prober(MultiByteCharSetProber):
34 | def __init__(self):
35 | super(GB2312Prober, self).__init__()
36 | self.coding_sm = CodingStateMachine(GB2312_SM_MODEL)
37 | self.distribution_analyzer = GB2312DistributionAnalysis()
38 | self.reset()
39 |
40 | @property
41 | def charset_name(self):
42 | return "GB2312"
43 |
44 | @property
45 | def language(self):
46 | return "Chinese"
47 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/mbcsgroupprober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is Mozilla Universal charset detector code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 2001
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | # Shy Shalom - original C code
12 | # Proofpoint, Inc.
13 | #
14 | # This library is free software; you can redistribute it and/or
15 | # modify it under the terms of the GNU Lesser General Public
16 | # License as published by the Free Software Foundation; either
17 | # version 2.1 of the License, or (at your option) any later version.
18 | #
19 | # This library is distributed in the hope that it will be useful,
20 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 | # Lesser General Public License for more details.
23 | #
24 | # You should have received a copy of the GNU Lesser General Public
25 | # License along with this library; if not, write to the Free Software
26 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
27 | # 02110-1301 USA
28 | ######################### END LICENSE BLOCK #########################
29 |
30 | from .charsetgroupprober import CharSetGroupProber
31 | from .utf8prober import UTF8Prober
32 | from .sjisprober import SJISProber
33 | from .eucjpprober import EUCJPProber
34 | from .gb2312prober import GB2312Prober
35 | from .euckrprober import EUCKRProber
36 | from .cp949prober import CP949Prober
37 | from .big5prober import Big5Prober
38 | from .euctwprober import EUCTWProber
39 |
40 |
41 | class MBCSGroupProber(CharSetGroupProber):
42 | def __init__(self, lang_filter=None):
43 | super(MBCSGroupProber, self).__init__(lang_filter=lang_filter)
44 | self.probers = [
45 | UTF8Prober(),
46 | SJISProber(),
47 | EUCJPProber(),
48 | GB2312Prober(),
49 | EUCKRProber(),
50 | CP949Prober(),
51 | Big5Prober(),
52 | EUCTWProber()
53 | ]
54 | self.reset()
55 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/chardet/version.py:
--------------------------------------------------------------------------------
1 | """
2 | This module exists only to simplify retrieving the version number of chardet
3 | from within setup.py and from chardet subpackages.
4 |
5 | :author: Dan Blanchard (dan.blanchard@gmail.com)
6 | """
7 |
8 | __version__ = "3.0.4"
9 | VERSION = __version__.split('.')
10 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/easy-install.pth:
--------------------------------------------------------------------------------
1 | ./setuptools-39.1.0-py3.8.egg
2 | ./pip-10.0.1-py3.8.egg
3 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna-2.10.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna-2.10.dist-info/LICENSE.rst:
--------------------------------------------------------------------------------
1 | License
2 | -------
3 |
4 | License: bsd-3-clause
5 |
6 | Copyright (c) 2013-2020, Kim Davies. All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without
9 | modification, are permitted provided that the following conditions are met:
10 |
11 | #. Redistributions of source code must retain the above copyright
12 | notice, this list of conditions and the following disclaimer.
13 |
14 | #. Redistributions in binary form must reproduce the above
15 | copyright notice, this list of conditions and the following
16 | disclaimer in the documentation and/or other materials provided with
17 | the distribution.
18 |
19 | #. Neither the name of the copyright holder nor the names of the
20 | contributors may be used to endorse or promote products derived
21 | from this software without specific prior written permission.
22 |
23 | #. THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS "AS IS" AND ANY
24 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
26 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
27 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
30 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
33 | USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
34 | DAMAGE.
35 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna-2.10.dist-info/RECORD:
--------------------------------------------------------------------------------
1 | idna/__init__.py,sha256=9Nt7xpyet3DmOrPUGooDdAwmHZZu1qUAy2EaJ93kGiQ,58
2 | idna/codec.py,sha256=lvYb7yu7PhAqFaAIAdWcwgaWI2UmgseUua-1c0AsG0A,3299
3 | idna/compat.py,sha256=R-h29D-6mrnJzbXxymrWUW7iZUvy-26TQwZ0ij57i4U,232
4 | idna/core.py,sha256=jCoaLb3bA2tS_DDx9PpGuNTEZZN2jAzB369aP-IHYRE,11951
5 | idna/idnadata.py,sha256=gmzFwZWjdms3kKZ_M_vwz7-LP_SCgYfSeE03B21Qpsk,42350
6 | idna/intranges.py,sha256=TY1lpxZIQWEP6tNqjZkFA5hgoMWOj1OBmnUG8ihT87E,1749
7 | idna/package_data.py,sha256=bxBjpLnE06_1jSYKEy5svOMu1zM3OMztXVUb1tPlcp0,22
8 | idna/uts46data.py,sha256=lMdw2zdjkH1JUWXPPEfFUSYT3Fyj60bBmfLvvy5m7ko,202084
9 | idna-2.10.dist-info/LICENSE.rst,sha256=QSAUQg0kc9ugYRfD1Nng7sqm3eDKMM2VH07CvjlCbzI,1565
10 | idna-2.10.dist-info/METADATA,sha256=ZWCaQDBjdmSvx5EU7Cv6ORC-9NUQ6nXh1eXx38ySe40,9104
11 | idna-2.10.dist-info/WHEEL,sha256=8zNYZbwQSXoB9IfXOjPfeNwvAsALAjffgk27FqvCWbo,110
12 | idna-2.10.dist-info/top_level.txt,sha256=jSag9sEDqvSPftxOQy-ABfGV_RSy7oFh4zZJpODV8k0,5
13 | idna-2.10.dist-info/RECORD,,
14 | idna-2.10.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
15 | idna/__pycache__/__init__.cpython-38.pyc,,
16 | idna/__pycache__/uts46data.cpython-38.pyc,,
17 | idna/__pycache__/intranges.cpython-38.pyc,,
18 | idna/__pycache__/package_data.cpython-38.pyc,,
19 | idna/__pycache__/core.cpython-38.pyc,,
20 | idna/__pycache__/idnadata.cpython-38.pyc,,
21 | idna/__pycache__/compat.cpython-38.pyc,,
22 | idna/__pycache__/codec.cpython-38.pyc,,
23 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna-2.10.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.33.6)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna-2.10.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | idna
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/__init__.py:
--------------------------------------------------------------------------------
1 | from .package_data import __version__
2 | from .core import *
3 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/idna/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/__pycache__/codec.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/idna/__pycache__/codec.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/__pycache__/compat.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/idna/__pycache__/compat.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/__pycache__/core.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/idna/__pycache__/core.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/__pycache__/idnadata.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/idna/__pycache__/idnadata.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/__pycache__/intranges.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/idna/__pycache__/intranges.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/__pycache__/package_data.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/idna/__pycache__/package_data.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/__pycache__/uts46data.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/idna/__pycache__/uts46data.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/compat.py:
--------------------------------------------------------------------------------
1 | from .core import *
2 | from .codec import *
3 |
4 | def ToASCII(label):
5 | return encode(label)
6 |
7 | def ToUnicode(label):
8 | return decode(label)
9 |
10 | def nameprep(s):
11 | raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol")
12 |
13 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/intranges.py:
--------------------------------------------------------------------------------
1 | """
2 | Given a list of integers, made up of (hopefully) a small number of long runs
3 | of consecutive integers, compute a representation of the form
4 | ((start1, end1), (start2, end2) ...). Then answer the question "was x present
5 | in the original list?" in time O(log(# runs)).
6 | """
7 |
8 | import bisect
9 |
10 | def intranges_from_list(list_):
11 | """Represent a list of integers as a sequence of ranges:
12 | ((start_0, end_0), (start_1, end_1), ...), such that the original
13 | integers are exactly those x such that start_i <= x < end_i for some i.
14 |
15 | Ranges are encoded as single integers (start << 32 | end), not as tuples.
16 | """
17 |
18 | sorted_list = sorted(list_)
19 | ranges = []
20 | last_write = -1
21 | for i in range(len(sorted_list)):
22 | if i+1 < len(sorted_list):
23 | if sorted_list[i] == sorted_list[i+1]-1:
24 | continue
25 | current_range = sorted_list[last_write+1:i+1]
26 | ranges.append(_encode_range(current_range[0], current_range[-1] + 1))
27 | last_write = i
28 |
29 | return tuple(ranges)
30 |
31 | def _encode_range(start, end):
32 | return (start << 32) | end
33 |
34 | def _decode_range(r):
35 | return (r >> 32), (r & ((1 << 32) - 1))
36 |
37 |
38 | def intranges_contain(int_, ranges):
39 | """Determine if `int_` falls into one of the ranges in `ranges`."""
40 | tuple_ = _encode_range(int_, 0)
41 | pos = bisect.bisect_left(ranges, tuple_)
42 | # we could be immediately ahead of a tuple (start, end)
43 | # with start < int_ <= end
44 | if pos > 0:
45 | left, right = _decode_range(ranges[pos-1])
46 | if left <= int_ < right:
47 | return True
48 | # or we could be immediately behind a tuple (int_, end)
49 | if pos < len(ranges):
50 | left, _ = _decode_range(ranges[pos])
51 | if left == int_:
52 | return True
53 | return False
54 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/idna/package_data.py:
--------------------------------------------------------------------------------
1 | __version__ = '2.10'
2 |
3 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/dependency_links.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/entry_points.txt:
--------------------------------------------------------------------------------
1 | [console_scripts]
2 | pip = pip._internal:main
3 | pip3 = pip._internal:main
4 | pip3.8 = pip._internal:main
5 |
6 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/not-zip-safe:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/requires.txt:
--------------------------------------------------------------------------------
1 |
2 | [testing]
3 | pytest
4 | mock
5 | pretend
6 | scripttest>=1.3
7 | virtualenv>=1.10
8 | freezegun
9 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/top_level.txt:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/__init__.py:
--------------------------------------------------------------------------------
1 | __version__ = "10.0.1"
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/__main__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | import os
4 | import sys
5 |
6 | # If we are running from a wheel, add the wheel to sys.path
7 | # This allows the usage python pip-*.whl/pip install pip-*.whl
8 | if __package__ == '':
9 | # __file__ is pip-*.whl/pip/__main__.py
10 | # first dirname call strips of '/__main__.py', second strips off '/pip'
11 | # Resulting path is the name of the wheel itself
12 | # Add that to sys.path so we can import pip
13 | path = os.path.dirname(os.path.dirname(__file__))
14 | sys.path.insert(0, path)
15 |
16 | from pip._internal import main as _main # noqa
17 |
18 | if __name__ == '__main__':
19 | sys.exit(_main())
20 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/check.py:
--------------------------------------------------------------------------------
1 | import logging
2 |
3 | from pip._internal.basecommand import Command
4 | from pip._internal.operations.check import (
5 | check_package_set, create_package_set_from_installed,
6 | )
7 | from pip._internal.utils.misc import get_installed_distributions
8 |
9 | logger = logging.getLogger(__name__)
10 |
11 |
12 | class CheckCommand(Command):
13 | """Verify installed packages have compatible dependencies."""
14 | name = 'check'
15 | usage = """
16 | %prog [options]"""
17 | summary = 'Verify installed packages have compatible dependencies.'
18 |
19 | def run(self, options, args):
20 | package_set = create_package_set_from_installed()
21 | missing, conflicting = check_package_set(package_set)
22 |
23 | for project_name in missing:
24 | version = package_set[project_name].version
25 | for dependency in missing[project_name]:
26 | logger.info(
27 | "%s %s requires %s, which is not installed.",
28 | project_name, version, dependency[0],
29 | )
30 |
31 | for project_name in conflicting:
32 | version = package_set[project_name].version
33 | for dep_name, dep_version, req in conflicting[project_name]:
34 | logger.info(
35 | "%s %s has requirement %s, but you have %s %s.",
36 | project_name, version, req, dep_name, dep_version,
37 | )
38 |
39 | if missing or conflicting:
40 | return 1
41 | else:
42 | logger.info("No broken requirements found.")
43 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/hash.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | import hashlib
4 | import logging
5 | import sys
6 |
7 | from pip._internal.basecommand import Command
8 | from pip._internal.status_codes import ERROR
9 | from pip._internal.utils.hashes import FAVORITE_HASH, STRONG_HASHES
10 | from pip._internal.utils.misc import read_chunks
11 |
12 | logger = logging.getLogger(__name__)
13 |
14 |
15 | class HashCommand(Command):
16 | """
17 | Compute a hash of a local package archive.
18 |
19 | These can be used with --hash in a requirements file to do repeatable
20 | installs.
21 |
22 | """
23 | name = 'hash'
24 | usage = '%prog [options] ...'
25 | summary = 'Compute hashes of package archives.'
26 | ignore_require_venv = True
27 |
28 | def __init__(self, *args, **kw):
29 | super(HashCommand, self).__init__(*args, **kw)
30 | self.cmd_opts.add_option(
31 | '-a', '--algorithm',
32 | dest='algorithm',
33 | choices=STRONG_HASHES,
34 | action='store',
35 | default=FAVORITE_HASH,
36 | help='The hash algorithm to use: one of %s' %
37 | ', '.join(STRONG_HASHES))
38 | self.parser.insert_option_group(0, self.cmd_opts)
39 |
40 | def run(self, options, args):
41 | if not args:
42 | self.parser.print_usage(sys.stderr)
43 | return ERROR
44 |
45 | algorithm = options.algorithm
46 | for path in args:
47 | logger.info('%s:\n--hash=%s:%s',
48 | path, algorithm, _hash_of_file(path, algorithm))
49 |
50 |
51 | def _hash_of_file(path, algorithm):
52 | """Return the hash digest of a file."""
53 | with open(path, 'rb') as archive:
54 | hash = hashlib.new(algorithm)
55 | for chunk in read_chunks(archive):
56 | hash.update(chunk)
57 | return hash.hexdigest()
58 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/help.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | from pip._internal.basecommand import SUCCESS, Command
4 | from pip._internal.exceptions import CommandError
5 |
6 |
7 | class HelpCommand(Command):
8 | """Show help for commands"""
9 | name = 'help'
10 | usage = """
11 | %prog """
12 | summary = 'Show help for commands.'
13 | ignore_require_venv = True
14 |
15 | def run(self, options, args):
16 | from pip._internal.commands import commands_dict, get_similar_commands
17 |
18 | try:
19 | # 'pip help' with no args is handled by pip.__init__.parseopt()
20 | cmd_name = args[0] # the command we need help for
21 | except IndexError:
22 | return SUCCESS
23 |
24 | if cmd_name not in commands_dict:
25 | guess = get_similar_commands(cmd_name)
26 |
27 | msg = ['unknown command "%s"' % cmd_name]
28 | if guess:
29 | msg.append('maybe you meant "%s"' % guess)
30 |
31 | raise CommandError(' - '.join(msg))
32 |
33 | command = commands_dict[cmd_name]()
34 | command.parser.print_help()
35 |
36 | return SUCCESS
37 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/models/__init__.py:
--------------------------------------------------------------------------------
1 | from pip._internal.models.index import Index, PyPI
2 |
3 |
4 | __all__ = ["Index", "PyPI"]
5 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/models/index.py:
--------------------------------------------------------------------------------
1 | from pip._vendor.six.moves.urllib import parse as urllib_parse
2 |
3 |
4 | class Index(object):
5 | def __init__(self, url):
6 | self.url = url
7 | self.netloc = urllib_parse.urlsplit(url).netloc
8 | self.simple_url = self.url_to_path('simple')
9 | self.pypi_url = self.url_to_path('pypi')
10 |
11 | def url_to_path(self, path):
12 | return urllib_parse.urljoin(self.url, path)
13 |
14 |
15 | PyPI = Index('https://pypi.org/')
16 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/__init__.py
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | import logging
4 |
5 | from .req_install import InstallRequirement
6 | from .req_set import RequirementSet
7 | from .req_file import parse_requirements
8 | from pip._internal.utils.logging import indent_log
9 |
10 |
11 | __all__ = [
12 | "RequirementSet", "InstallRequirement",
13 | "parse_requirements", "install_given_reqs",
14 | ]
15 |
16 | logger = logging.getLogger(__name__)
17 |
18 |
19 | def install_given_reqs(to_install, install_options, global_options=(),
20 | *args, **kwargs):
21 | """
22 | Install everything in the given list.
23 |
24 | (to be called after having downloaded and unpacked the packages)
25 | """
26 |
27 | if to_install:
28 | logger.info(
29 | 'Installing collected packages: %s',
30 | ', '.join([req.name for req in to_install]),
31 | )
32 |
33 | with indent_log():
34 | for requirement in to_install:
35 | if requirement.conflicts_with:
36 | logger.info(
37 | 'Found existing installation: %s',
38 | requirement.conflicts_with,
39 | )
40 | with indent_log():
41 | uninstalled_pathset = requirement.uninstall(
42 | auto_confirm=True
43 | )
44 | try:
45 | requirement.install(
46 | install_options,
47 | global_options,
48 | *args,
49 | **kwargs
50 | )
51 | except:
52 | should_rollback = (
53 | requirement.conflicts_with and
54 | not requirement.install_succeeded
55 | )
56 | # if install did not succeed, rollback previous uninstall
57 | if should_rollback:
58 | uninstalled_pathset.rollback()
59 | raise
60 | else:
61 | should_commit = (
62 | requirement.conflicts_with and
63 | requirement.install_succeeded
64 | )
65 | if should_commit:
66 | uninstalled_pathset.commit()
67 | requirement.remove_temporary_source()
68 |
69 | return to_install
70 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/status_codes.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | SUCCESS = 0
4 | ERROR = 1
5 | UNKNOWN_ERROR = 2
6 | VIRTUALENV_NOT_FOUND = 3
7 | PREVIOUS_BUILD_DIR_ERROR = 4
8 | NO_MATCHES_FOUND = 23
9 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/__init__.py
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/encoding.py:
--------------------------------------------------------------------------------
1 | import codecs
2 | import locale
3 | import re
4 | import sys
5 |
6 | BOMS = [
7 | (codecs.BOM_UTF8, 'utf8'),
8 | (codecs.BOM_UTF16, 'utf16'),
9 | (codecs.BOM_UTF16_BE, 'utf16-be'),
10 | (codecs.BOM_UTF16_LE, 'utf16-le'),
11 | (codecs.BOM_UTF32, 'utf32'),
12 | (codecs.BOM_UTF32_BE, 'utf32-be'),
13 | (codecs.BOM_UTF32_LE, 'utf32-le'),
14 | ]
15 |
16 | ENCODING_RE = re.compile(br'coding[:=]\s*([-\w.]+)')
17 |
18 |
19 | def auto_decode(data):
20 | """Check a bytes string for a BOM to correctly detect the encoding
21 |
22 | Fallback to locale.getpreferredencoding(False) like open() on Python3"""
23 | for bom, encoding in BOMS:
24 | if data.startswith(bom):
25 | return data[len(bom):].decode(encoding)
26 | # Lets check the first two lines as in PEP263
27 | for line in data.split(b'\n')[:2]:
28 | if line[0:1] == b'#' and ENCODING_RE.search(line):
29 | encoding = ENCODING_RE.search(line).groups()[0].decode('ascii')
30 | return data.decode(encoding)
31 | return data.decode(
32 | locale.getpreferredencoding(False) or sys.getdefaultencoding(),
33 | )
34 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/filesystem.py:
--------------------------------------------------------------------------------
1 | import os
2 | import os.path
3 |
4 | from pip._internal.compat import get_path_uid
5 |
6 |
7 | def check_path_owner(path):
8 | # If we don't have a way to check the effective uid of this process, then
9 | # we'll just assume that we own the directory.
10 | if not hasattr(os, "geteuid"):
11 | return True
12 |
13 | previous = None
14 | while path != previous:
15 | if os.path.lexists(path):
16 | # Check if path is writable by current user.
17 | if os.geteuid() == 0:
18 | # Special handling for root user in order to handle properly
19 | # cases where users use sudo without -H flag.
20 | try:
21 | path_uid = get_path_uid(path)
22 | except OSError:
23 | return False
24 | return path_uid == 0
25 | else:
26 | return os.access(path, os.W_OK)
27 | else:
28 | previous, path = path, os.path.dirname(path)
29 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/setuptools_build.py:
--------------------------------------------------------------------------------
1 | # Shim to wrap setup.py invocation with setuptools
2 | SETUPTOOLS_SHIM = (
3 | "import setuptools, tokenize;__file__=%r;"
4 | "f=getattr(tokenize, 'open', open)(__file__);"
5 | "code=f.read().replace('\\r\\n', '\\n');"
6 | "f.close();"
7 | "exec(compile(code, __file__, 'exec'))"
8 | )
9 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/typing.py:
--------------------------------------------------------------------------------
1 | """For neatly implementing static typing in pip.
2 |
3 | `mypy` - the static type analysis tool we use - uses the `typing` module, which
4 | provides core functionality fundamental to mypy's functioning.
5 |
6 | Generally, `typing` would be imported at runtime and used in that fashion -
7 | it acts as a no-op at runtime and does not have any run-time overhead by
8 | design.
9 |
10 | As it turns out, `typing` is not vendorable - it uses separate sources for
11 | Python 2/Python 3. Thus, this codebase can not expect it to be present.
12 | To work around this, mypy allows the typing import to be behind a False-y
13 | optional to prevent it from running at runtime and type-comments can be used
14 | to remove the need for the types to be accessible directly during runtime.
15 |
16 | This module provides the False-y guard in a nicely named fashion so that a
17 | curious maintainer can reach here to read this.
18 |
19 | In pip, all static-typing related imports should be guarded as follows:
20 |
21 | from pip.utils.typing import MYPY_CHECK_RUNNING
22 |
23 | if MYPY_CHECK_RUNNING:
24 | from typing import ...
25 |
26 | Ref: https://github.com/python/mypy/issues/3216
27 | """
28 |
29 | MYPY_CHECK_RUNNING = False
30 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/__init__.py:
--------------------------------------------------------------------------------
1 | """CacheControl import Interface.
2 |
3 | Make it easy to import from cachecontrol without long namespaces.
4 | """
5 | __author__ = 'Eric Larson'
6 | __email__ = 'eric@ionrock.org'
7 | __version__ = '0.12.4'
8 |
9 | from .wrapper import CacheControl
10 | from .adapter import CacheControlAdapter
11 | from .controller import CacheController
12 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/_cmd.py:
--------------------------------------------------------------------------------
1 | import logging
2 |
3 | from pip._vendor import requests
4 |
5 | from pip._vendor.cachecontrol.adapter import CacheControlAdapter
6 | from pip._vendor.cachecontrol.cache import DictCache
7 | from pip._vendor.cachecontrol.controller import logger
8 |
9 | from argparse import ArgumentParser
10 |
11 |
12 | def setup_logging():
13 | logger.setLevel(logging.DEBUG)
14 | handler = logging.StreamHandler()
15 | logger.addHandler(handler)
16 |
17 |
18 | def get_session():
19 | adapter = CacheControlAdapter(
20 | DictCache(),
21 | cache_etags=True,
22 | serializer=None,
23 | heuristic=None,
24 | )
25 | sess = requests.Session()
26 | sess.mount('http://', adapter)
27 | sess.mount('https://', adapter)
28 |
29 | sess.cache_controller = adapter.controller
30 | return sess
31 |
32 |
33 | def get_args():
34 | parser = ArgumentParser()
35 | parser.add_argument('url', help='The URL to try and cache')
36 | return parser.parse_args()
37 |
38 |
39 | def main(args=None):
40 | args = get_args()
41 | sess = get_session()
42 |
43 | # Make a request to get a response
44 | resp = sess.get(args.url)
45 |
46 | # Turn on logging
47 | setup_logging()
48 |
49 | # try setting the cache
50 | sess.cache_controller.cache_response(resp.request, resp.raw)
51 |
52 | # Now try to get it
53 | if sess.cache_controller.cached_request(resp.request):
54 | print('Cached!')
55 | else:
56 | print('Not cached :(')
57 |
58 |
59 | if __name__ == '__main__':
60 | main()
61 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/cache.py:
--------------------------------------------------------------------------------
1 | """
2 | The cache object API for implementing caches. The default is a thread
3 | safe in-memory dictionary.
4 | """
5 | from threading import Lock
6 |
7 |
8 | class BaseCache(object):
9 |
10 | def get(self, key):
11 | raise NotImplemented()
12 |
13 | def set(self, key, value):
14 | raise NotImplemented()
15 |
16 | def delete(self, key):
17 | raise NotImplemented()
18 |
19 | def close(self):
20 | pass
21 |
22 |
23 | class DictCache(BaseCache):
24 |
25 | def __init__(self, init_dict=None):
26 | self.lock = Lock()
27 | self.data = init_dict or {}
28 |
29 | def get(self, key):
30 | return self.data.get(key, None)
31 |
32 | def set(self, key, value):
33 | with self.lock:
34 | self.data.update({key: value})
35 |
36 | def delete(self, key):
37 | with self.lock:
38 | if key in self.data:
39 | self.data.pop(key)
40 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/__init__.py:
--------------------------------------------------------------------------------
1 | from .file_cache import FileCache # noqa
2 | from .redis_cache import RedisCache # noqa
3 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/redis_cache.py:
--------------------------------------------------------------------------------
1 | from __future__ import division
2 |
3 | from datetime import datetime
4 | from pip._vendor.cachecontrol.cache import BaseCache
5 |
6 |
7 | def total_seconds(td):
8 | """Python 2.6 compatability"""
9 | if hasattr(td, 'total_seconds'):
10 | return int(td.total_seconds())
11 |
12 | ms = td.microseconds
13 | secs = (td.seconds + td.days * 24 * 3600)
14 | return int((ms + secs * 10**6) / 10**6)
15 |
16 |
17 | class RedisCache(BaseCache):
18 |
19 | def __init__(self, conn):
20 | self.conn = conn
21 |
22 | def get(self, key):
23 | return self.conn.get(key)
24 |
25 | def set(self, key, value, expires=None):
26 | if not expires:
27 | self.conn.set(key, value)
28 | else:
29 | expires = expires - datetime.utcnow()
30 | self.conn.setex(key, total_seconds(expires), value)
31 |
32 | def delete(self, key):
33 | self.conn.delete(key)
34 |
35 | def clear(self):
36 | """Helper for clearing all the keys in a database. Use with
37 | caution!"""
38 | for key in self.conn.keys():
39 | self.conn.delete(key)
40 |
41 | def close(self):
42 | """Redis uses connection pooling, no need to close the connection."""
43 | pass
44 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/compat.py:
--------------------------------------------------------------------------------
1 | try:
2 | from urllib.parse import urljoin
3 | except ImportError:
4 | from urlparse import urljoin
5 |
6 |
7 | try:
8 | import cPickle as pickle
9 | except ImportError:
10 | import pickle
11 |
12 |
13 | # Handle the case where the requests module has been patched to not have
14 | # urllib3 bundled as part of its source.
15 | try:
16 | from pip._vendor.requests.packages.urllib3.response import HTTPResponse
17 | except ImportError:
18 | from pip._vendor.urllib3.response import HTTPResponse
19 |
20 | try:
21 | from pip._vendor.requests.packages.urllib3.util import is_fp_closed
22 | except ImportError:
23 | from pip._vendor.urllib3.util import is_fp_closed
24 |
25 | # Replicate some six behaviour
26 | try:
27 | text_type = unicode
28 | except NameError:
29 | text_type = str
30 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/wrapper.py:
--------------------------------------------------------------------------------
1 | from .adapter import CacheControlAdapter
2 | from .cache import DictCache
3 |
4 |
5 | def CacheControl(sess,
6 | cache=None,
7 | cache_etags=True,
8 | serializer=None,
9 | heuristic=None,
10 | controller_class=None,
11 | adapter_class=None,
12 | cacheable_methods=None):
13 |
14 | cache = cache or DictCache()
15 | adapter_class = adapter_class or CacheControlAdapter
16 | adapter = adapter_class(
17 | cache,
18 | cache_etags=cache_etags,
19 | serializer=serializer,
20 | heuristic=heuristic,
21 | controller_class=controller_class,
22 | cacheable_methods=cacheable_methods
23 | )
24 | sess.mount('http://', adapter)
25 | sess.mount('https://', adapter)
26 |
27 | return sess
28 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/__init__.py:
--------------------------------------------------------------------------------
1 | from .core import where, old_where
2 |
3 | __version__ = "2018.01.18"
4 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/__main__.py:
--------------------------------------------------------------------------------
1 | from certifi import where
2 | print(where())
3 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/core.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 |
4 | """
5 | certifi.py
6 | ~~~~~~~~~~
7 |
8 | This module returns the installation location of cacert.pem.
9 | """
10 | import os
11 | import warnings
12 |
13 |
14 | class DeprecatedBundleWarning(DeprecationWarning):
15 | """
16 | The weak security bundle is being deprecated. Please bother your service
17 | provider to get them to stop using cross-signed roots.
18 | """
19 |
20 |
21 | def where():
22 | f = os.path.dirname(__file__)
23 |
24 | return os.path.join(f, 'cacert.pem')
25 |
26 |
27 | def old_where():
28 | warnings.warn(
29 | "The weak security bundle has been removed. certifi.old_where() is now an alias "
30 | "of certifi.where(). Please update your code to use certifi.where() instead. "
31 | "certifi.old_where() will be removed in 2018.",
32 | DeprecatedBundleWarning
33 | )
34 | return where()
35 |
36 | if __name__ == '__main__':
37 | print(where())
38 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/__init__.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # This library is free software; you can redistribute it and/or
3 | # modify it under the terms of the GNU Lesser General Public
4 | # License as published by the Free Software Foundation; either
5 | # version 2.1 of the License, or (at your option) any later version.
6 | #
7 | # This library is distributed in the hope that it will be useful,
8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 | # Lesser General Public License for more details.
11 | #
12 | # You should have received a copy of the GNU Lesser General Public
13 | # License along with this library; if not, write to the Free Software
14 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
15 | # 02110-1301 USA
16 | ######################### END LICENSE BLOCK #########################
17 |
18 |
19 | from .compat import PY2, PY3
20 | from .universaldetector import UniversalDetector
21 | from .version import __version__, VERSION
22 |
23 |
24 | def detect(byte_str):
25 | """
26 | Detect the encoding of the given byte string.
27 |
28 | :param byte_str: The byte sequence to examine.
29 | :type byte_str: ``bytes`` or ``bytearray``
30 | """
31 | if not isinstance(byte_str, bytearray):
32 | if not isinstance(byte_str, bytes):
33 | raise TypeError('Expected object of type bytes or bytearray, got: '
34 | '{0}'.format(type(byte_str)))
35 | else:
36 | byte_str = bytearray(byte_str)
37 | detector = UniversalDetector()
38 | detector.feed(byte_str)
39 | return detector.close()
40 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/big5prober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is Mozilla Communicator client code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 1998
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | #
12 | # This library is free software; you can redistribute it and/or
13 | # modify it under the terms of the GNU Lesser General Public
14 | # License as published by the Free Software Foundation; either
15 | # version 2.1 of the License, or (at your option) any later version.
16 | #
17 | # This library is distributed in the hope that it will be useful,
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 | # Lesser General Public License for more details.
21 | #
22 | # You should have received a copy of the GNU Lesser General Public
23 | # License along with this library; if not, write to the Free Software
24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
25 | # 02110-1301 USA
26 | ######################### END LICENSE BLOCK #########################
27 |
28 | from .mbcharsetprober import MultiByteCharSetProber
29 | from .codingstatemachine import CodingStateMachine
30 | from .chardistribution import Big5DistributionAnalysis
31 | from .mbcssm import BIG5_SM_MODEL
32 |
33 |
34 | class Big5Prober(MultiByteCharSetProber):
35 | def __init__(self):
36 | super(Big5Prober, self).__init__()
37 | self.coding_sm = CodingStateMachine(BIG5_SM_MODEL)
38 | self.distribution_analyzer = Big5DistributionAnalysis()
39 | self.reset()
40 |
41 | @property
42 | def charset_name(self):
43 | return "Big5"
44 |
45 | @property
46 | def language(self):
47 | return "Chinese"
48 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cli/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/compat.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # Contributor(s):
3 | # Dan Blanchard
4 | # Ian Cordasco
5 | #
6 | # This library is free software; you can redistribute it and/or
7 | # modify it under the terms of the GNU Lesser General Public
8 | # License as published by the Free Software Foundation; either
9 | # version 2.1 of the License, or (at your option) any later version.
10 | #
11 | # This library is distributed in the hope that it will be useful,
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 | # Lesser General Public License for more details.
15 | #
16 | # You should have received a copy of the GNU Lesser General Public
17 | # License along with this library; if not, write to the Free Software
18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19 | # 02110-1301 USA
20 | ######################### END LICENSE BLOCK #########################
21 |
22 | import sys
23 |
24 |
25 | if sys.version_info < (3, 0):
26 | PY2 = True
27 | PY3 = False
28 | base_str = (str, unicode)
29 | text_type = unicode
30 | else:
31 | PY2 = False
32 | PY3 = True
33 | base_str = (bytes, str)
34 | text_type = str
35 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cp949prober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is mozilla.org code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 1998
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | #
12 | # This library is free software; you can redistribute it and/or
13 | # modify it under the terms of the GNU Lesser General Public
14 | # License as published by the Free Software Foundation; either
15 | # version 2.1 of the License, or (at your option) any later version.
16 | #
17 | # This library is distributed in the hope that it will be useful,
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 | # Lesser General Public License for more details.
21 | #
22 | # You should have received a copy of the GNU Lesser General Public
23 | # License along with this library; if not, write to the Free Software
24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
25 | # 02110-1301 USA
26 | ######################### END LICENSE BLOCK #########################
27 |
28 | from .chardistribution import EUCKRDistributionAnalysis
29 | from .codingstatemachine import CodingStateMachine
30 | from .mbcharsetprober import MultiByteCharSetProber
31 | from .mbcssm import CP949_SM_MODEL
32 |
33 |
34 | class CP949Prober(MultiByteCharSetProber):
35 | def __init__(self):
36 | super(CP949Prober, self).__init__()
37 | self.coding_sm = CodingStateMachine(CP949_SM_MODEL)
38 | # NOTE: CP949 is a superset of EUC-KR, so the distribution should be
39 | # not different.
40 | self.distribution_analyzer = EUCKRDistributionAnalysis()
41 | self.reset()
42 |
43 | @property
44 | def charset_name(self):
45 | return "CP949"
46 |
47 | @property
48 | def language(self):
49 | return "Korean"
50 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/enums.py:
--------------------------------------------------------------------------------
1 | """
2 | All of the Enums that are used throughout the chardet package.
3 |
4 | :author: Dan Blanchard (dan.blanchard@gmail.com)
5 | """
6 |
7 |
8 | class InputState(object):
9 | """
10 | This enum represents the different states a universal detector can be in.
11 | """
12 | PURE_ASCII = 0
13 | ESC_ASCII = 1
14 | HIGH_BYTE = 2
15 |
16 |
17 | class LanguageFilter(object):
18 | """
19 | This enum represents the different language filters we can apply to a
20 | ``UniversalDetector``.
21 | """
22 | CHINESE_SIMPLIFIED = 0x01
23 | CHINESE_TRADITIONAL = 0x02
24 | JAPANESE = 0x04
25 | KOREAN = 0x08
26 | NON_CJK = 0x10
27 | ALL = 0x1F
28 | CHINESE = CHINESE_SIMPLIFIED | CHINESE_TRADITIONAL
29 | CJK = CHINESE | JAPANESE | KOREAN
30 |
31 |
32 | class ProbingState(object):
33 | """
34 | This enum represents the different states a prober can be in.
35 | """
36 | DETECTING = 0
37 | FOUND_IT = 1
38 | NOT_ME = 2
39 |
40 |
41 | class MachineState(object):
42 | """
43 | This enum represents the different states a state machine can be in.
44 | """
45 | START = 0
46 | ERROR = 1
47 | ITS_ME = 2
48 |
49 |
50 | class SequenceLikelihood(object):
51 | """
52 | This enum represents the likelihood of a character following the previous one.
53 | """
54 | NEGATIVE = 0
55 | UNLIKELY = 1
56 | LIKELY = 2
57 | POSITIVE = 3
58 |
59 | @classmethod
60 | def get_num_categories(cls):
61 | """:returns: The number of likelihood categories in the enum."""
62 | return 4
63 |
64 |
65 | class CharacterCategory(object):
66 | """
67 | This enum represents the different categories language models for
68 | ``SingleByteCharsetProber`` put characters into.
69 |
70 | Anything less than CONTROL is considered a letter.
71 | """
72 | UNDEFINED = 255
73 | LINE_BREAK = 254
74 | SYMBOL = 253
75 | DIGIT = 252
76 | CONTROL = 251
77 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euckrprober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is mozilla.org code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 1998
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | #
12 | # This library is free software; you can redistribute it and/or
13 | # modify it under the terms of the GNU Lesser General Public
14 | # License as published by the Free Software Foundation; either
15 | # version 2.1 of the License, or (at your option) any later version.
16 | #
17 | # This library is distributed in the hope that it will be useful,
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 | # Lesser General Public License for more details.
21 | #
22 | # You should have received a copy of the GNU Lesser General Public
23 | # License along with this library; if not, write to the Free Software
24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
25 | # 02110-1301 USA
26 | ######################### END LICENSE BLOCK #########################
27 |
28 | from .mbcharsetprober import MultiByteCharSetProber
29 | from .codingstatemachine import CodingStateMachine
30 | from .chardistribution import EUCKRDistributionAnalysis
31 | from .mbcssm import EUCKR_SM_MODEL
32 |
33 |
34 | class EUCKRProber(MultiByteCharSetProber):
35 | def __init__(self):
36 | super(EUCKRProber, self).__init__()
37 | self.coding_sm = CodingStateMachine(EUCKR_SM_MODEL)
38 | self.distribution_analyzer = EUCKRDistributionAnalysis()
39 | self.reset()
40 |
41 | @property
42 | def charset_name(self):
43 | return "EUC-KR"
44 |
45 | @property
46 | def language(self):
47 | return "Korean"
48 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euctwprober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is mozilla.org code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 1998
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | #
12 | # This library is free software; you can redistribute it and/or
13 | # modify it under the terms of the GNU Lesser General Public
14 | # License as published by the Free Software Foundation; either
15 | # version 2.1 of the License, or (at your option) any later version.
16 | #
17 | # This library is distributed in the hope that it will be useful,
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 | # Lesser General Public License for more details.
21 | #
22 | # You should have received a copy of the GNU Lesser General Public
23 | # License along with this library; if not, write to the Free Software
24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
25 | # 02110-1301 USA
26 | ######################### END LICENSE BLOCK #########################
27 |
28 | from .mbcharsetprober import MultiByteCharSetProber
29 | from .codingstatemachine import CodingStateMachine
30 | from .chardistribution import EUCTWDistributionAnalysis
31 | from .mbcssm import EUCTW_SM_MODEL
32 |
33 | class EUCTWProber(MultiByteCharSetProber):
34 | def __init__(self):
35 | super(EUCTWProber, self).__init__()
36 | self.coding_sm = CodingStateMachine(EUCTW_SM_MODEL)
37 | self.distribution_analyzer = EUCTWDistributionAnalysis()
38 | self.reset()
39 |
40 | @property
41 | def charset_name(self):
42 | return "EUC-TW"
43 |
44 | @property
45 | def language(self):
46 | return "Taiwan"
47 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/gb2312prober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is mozilla.org code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 1998
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | #
12 | # This library is free software; you can redistribute it and/or
13 | # modify it under the terms of the GNU Lesser General Public
14 | # License as published by the Free Software Foundation; either
15 | # version 2.1 of the License, or (at your option) any later version.
16 | #
17 | # This library is distributed in the hope that it will be useful,
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 | # Lesser General Public License for more details.
21 | #
22 | # You should have received a copy of the GNU Lesser General Public
23 | # License along with this library; if not, write to the Free Software
24 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
25 | # 02110-1301 USA
26 | ######################### END LICENSE BLOCK #########################
27 |
28 | from .mbcharsetprober import MultiByteCharSetProber
29 | from .codingstatemachine import CodingStateMachine
30 | from .chardistribution import GB2312DistributionAnalysis
31 | from .mbcssm import GB2312_SM_MODEL
32 |
33 | class GB2312Prober(MultiByteCharSetProber):
34 | def __init__(self):
35 | super(GB2312Prober, self).__init__()
36 | self.coding_sm = CodingStateMachine(GB2312_SM_MODEL)
37 | self.distribution_analyzer = GB2312DistributionAnalysis()
38 | self.reset()
39 |
40 | @property
41 | def charset_name(self):
42 | return "GB2312"
43 |
44 | @property
45 | def language(self):
46 | return "Chinese"
47 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcsgroupprober.py:
--------------------------------------------------------------------------------
1 | ######################## BEGIN LICENSE BLOCK ########################
2 | # The Original Code is Mozilla Universal charset detector code.
3 | #
4 | # The Initial Developer of the Original Code is
5 | # Netscape Communications Corporation.
6 | # Portions created by the Initial Developer are Copyright (C) 2001
7 | # the Initial Developer. All Rights Reserved.
8 | #
9 | # Contributor(s):
10 | # Mark Pilgrim - port to Python
11 | # Shy Shalom - original C code
12 | # Proofpoint, Inc.
13 | #
14 | # This library is free software; you can redistribute it and/or
15 | # modify it under the terms of the GNU Lesser General Public
16 | # License as published by the Free Software Foundation; either
17 | # version 2.1 of the License, or (at your option) any later version.
18 | #
19 | # This library is distributed in the hope that it will be useful,
20 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 | # Lesser General Public License for more details.
23 | #
24 | # You should have received a copy of the GNU Lesser General Public
25 | # License along with this library; if not, write to the Free Software
26 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
27 | # 02110-1301 USA
28 | ######################### END LICENSE BLOCK #########################
29 |
30 | from .charsetgroupprober import CharSetGroupProber
31 | from .utf8prober import UTF8Prober
32 | from .sjisprober import SJISProber
33 | from .eucjpprober import EUCJPProber
34 | from .gb2312prober import GB2312Prober
35 | from .euckrprober import EUCKRProber
36 | from .cp949prober import CP949Prober
37 | from .big5prober import Big5Prober
38 | from .euctwprober import EUCTWProber
39 |
40 |
41 | class MBCSGroupProber(CharSetGroupProber):
42 | def __init__(self, lang_filter=None):
43 | super(MBCSGroupProber, self).__init__(lang_filter=lang_filter)
44 | self.probers = [
45 | UTF8Prober(),
46 | SJISProber(),
47 | EUCJPProber(),
48 | GB2312Prober(),
49 | EUCKRProber(),
50 | CP949Prober(),
51 | Big5Prober(),
52 | EUCTWProber()
53 | ]
54 | self.reset()
55 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/version.py:
--------------------------------------------------------------------------------
1 | """
2 | This module exists only to simplify retrieving the version number of chardet
3 | from within setup.py and from chardet subpackages.
4 |
5 | :author: Dan Blanchard (dan.blanchard@gmail.com)
6 | """
7 |
8 | __version__ = "3.0.4"
9 | VERSION = __version__.split('.')
10 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.
2 | from .initialise import init, deinit, reinit, colorama_text
3 | from .ansi import Fore, Back, Style, Cursor
4 | from .ansitowin32 import AnsiToWin32
5 |
6 | __version__ = '0.3.9'
7 |
8 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/initialise.py:
--------------------------------------------------------------------------------
1 | # Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.
2 | import atexit
3 | import contextlib
4 | import sys
5 |
6 | from .ansitowin32 import AnsiToWin32
7 |
8 |
9 | orig_stdout = None
10 | orig_stderr = None
11 |
12 | wrapped_stdout = None
13 | wrapped_stderr = None
14 |
15 | atexit_done = False
16 |
17 |
18 | def reset_all():
19 | if AnsiToWin32 is not None: # Issue #74: objects might become None at exit
20 | AnsiToWin32(orig_stdout).reset_all()
21 |
22 |
23 | def init(autoreset=False, convert=None, strip=None, wrap=True):
24 |
25 | if not wrap and any([autoreset, convert, strip]):
26 | raise ValueError('wrap=False conflicts with any other arg=True')
27 |
28 | global wrapped_stdout, wrapped_stderr
29 | global orig_stdout, orig_stderr
30 |
31 | orig_stdout = sys.stdout
32 | orig_stderr = sys.stderr
33 |
34 | if sys.stdout is None:
35 | wrapped_stdout = None
36 | else:
37 | sys.stdout = wrapped_stdout = \
38 | wrap_stream(orig_stdout, convert, strip, autoreset, wrap)
39 | if sys.stderr is None:
40 | wrapped_stderr = None
41 | else:
42 | sys.stderr = wrapped_stderr = \
43 | wrap_stream(orig_stderr, convert, strip, autoreset, wrap)
44 |
45 | global atexit_done
46 | if not atexit_done:
47 | atexit.register(reset_all)
48 | atexit_done = True
49 |
50 |
51 | def deinit():
52 | if orig_stdout is not None:
53 | sys.stdout = orig_stdout
54 | if orig_stderr is not None:
55 | sys.stderr = orig_stderr
56 |
57 |
58 | @contextlib.contextmanager
59 | def colorama_text(*args, **kwargs):
60 | init(*args, **kwargs)
61 | try:
62 | yield
63 | finally:
64 | deinit()
65 |
66 |
67 | def reinit():
68 | if wrapped_stdout is not None:
69 | sys.stdout = wrapped_stdout
70 | if wrapped_stderr is not None:
71 | sys.stderr = wrapped_stderr
72 |
73 |
74 | def wrap_stream(stream, convert, strip, autoreset, wrap):
75 | if wrap:
76 | wrapper = AnsiToWin32(stream,
77 | convert=convert, strip=strip, autoreset=autoreset)
78 | if wrapper.should_wrap():
79 | stream = wrapper.stream
80 | return stream
81 |
82 |
83 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # Copyright (C) 2012-2017 Vinay Sajip.
4 | # Licensed to the Python Software Foundation under a contributor agreement.
5 | # See LICENSE.txt and CONTRIBUTORS.txt.
6 | #
7 | import logging
8 |
9 | __version__ = '0.2.7'
10 |
11 | class DistlibException(Exception):
12 | pass
13 |
14 | try:
15 | from logging import NullHandler
16 | except ImportError: # pragma: no cover
17 | class NullHandler(logging.Handler):
18 | def handle(self, record): pass
19 | def emit(self, record): pass
20 | def createLock(self): self.lock = None
21 |
22 | logger = logging.getLogger(__name__)
23 | logger.addHandler(NullHandler())
24 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/__init__.py:
--------------------------------------------------------------------------------
1 | """Modules copied from Python 3 standard libraries, for internal use only.
2 |
3 | Individual classes and functions are found in d2._backport.misc. Intended
4 | usage is to always import things missing from 3.1 from that module: the
5 | built-in/stdlib objects will be used if found.
6 | """
7 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/misc.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #
3 | # Copyright (C) 2012 The Python Software Foundation.
4 | # See LICENSE.txt and CONTRIBUTORS.txt.
5 | #
6 | """Backports for individual classes and functions."""
7 |
8 | import os
9 | import sys
10 |
11 | __all__ = ['cache_from_source', 'callable', 'fsencode']
12 |
13 |
14 | try:
15 | from imp import cache_from_source
16 | except ImportError:
17 | def cache_from_source(py_file, debug=__debug__):
18 | ext = debug and 'c' or 'o'
19 | return py_file + ext
20 |
21 |
22 | try:
23 | callable = callable
24 | except NameError:
25 | from collections import Callable
26 |
27 | def callable(obj):
28 | return isinstance(obj, Callable)
29 |
30 |
31 | try:
32 | fsencode = os.fsencode
33 | except AttributeError:
34 | def fsencode(filename):
35 | if isinstance(filename, bytes):
36 | return filename
37 | elif isinstance(filename, str):
38 | return filename.encode(sys.getfilesystemencoding())
39 | else:
40 | raise TypeError("expect bytes or str, not %s" %
41 | type(filename).__name__)
42 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/t32.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/t32.exe
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/t64.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/t64.exe
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/w32.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/w32.exe
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/w64.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/w64.exe
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | HTML parsing library based on the `WHATWG HTML specification
3 | `_. The parser is designed to be compatible with
4 | existing HTML found in the wild and implements well-defined error recovery that
5 | is largely compatible with modern desktop web browsers.
6 |
7 | Example usage::
8 |
9 | from pip._vendor import html5lib
10 | with open("my_document.html", "rb") as f:
11 | tree = html5lib.parse(f)
12 |
13 | For convenience, this module re-exports the following names:
14 |
15 | * :func:`~.html5parser.parse`
16 | * :func:`~.html5parser.parseFragment`
17 | * :class:`~.html5parser.HTMLParser`
18 | * :func:`~.treebuilders.getTreeBuilder`
19 | * :func:`~.treewalkers.getTreeWalker`
20 | * :func:`~.serializer.serialize`
21 | """
22 |
23 | from __future__ import absolute_import, division, unicode_literals
24 |
25 | from .html5parser import HTMLParser, parse, parseFragment
26 | from .treebuilders import getTreeBuilder
27 | from .treewalkers import getTreeWalker
28 | from .serializer import serialize
29 |
30 | __all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder",
31 | "getTreeWalker", "serialize"]
32 |
33 | # this has to be at the top level, see how setup.py parses this
34 | #: Distribution version number.
35 | __version__ = "1.0.1"
36 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from .py import Trie as PyTrie
4 |
5 | Trie = PyTrie
6 |
7 | # pylint:disable=wrong-import-position
8 | try:
9 | from .datrie import Trie as DATrie
10 | except ImportError:
11 | pass
12 | else:
13 | Trie = DATrie
14 | # pylint:enable=wrong-import-position
15 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/_base.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from collections import Mapping
4 |
5 |
6 | class Trie(Mapping):
7 | """Abstract base class for tries"""
8 |
9 | def keys(self, prefix=None):
10 | # pylint:disable=arguments-differ
11 | keys = super(Trie, self).keys()
12 |
13 | if prefix is None:
14 | return set(keys)
15 |
16 | return {x for x in keys if x.startswith(prefix)}
17 |
18 | def has_keys_with_prefix(self, prefix):
19 | for key in self.keys():
20 | if key.startswith(prefix):
21 | return True
22 |
23 | return False
24 |
25 | def longest_prefix(self, prefix):
26 | if prefix in self:
27 | return prefix
28 |
29 | for i in range(1, len(prefix) + 1):
30 | if prefix[:-i] in self:
31 | return prefix[:-i]
32 |
33 | raise KeyError(prefix)
34 |
35 | def longest_prefix_item(self, prefix):
36 | lprefix = self.longest_prefix(prefix)
37 | return (lprefix, self[lprefix])
38 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/datrie.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from datrie import Trie as DATrie
4 | from pip._vendor.six import text_type
5 |
6 | from ._base import Trie as ABCTrie
7 |
8 |
9 | class Trie(ABCTrie):
10 | def __init__(self, data):
11 | chars = set()
12 | for key in data.keys():
13 | if not isinstance(key, text_type):
14 | raise TypeError("All keys must be strings")
15 | for char in key:
16 | chars.add(char)
17 |
18 | self._data = DATrie("".join(chars))
19 | for key, value in data.items():
20 | self._data[key] = value
21 |
22 | def __contains__(self, key):
23 | return key in self._data
24 |
25 | def __len__(self):
26 | return len(self._data)
27 |
28 | def __iter__(self):
29 | raise NotImplementedError()
30 |
31 | def __getitem__(self, key):
32 | return self._data[key]
33 |
34 | def keys(self, prefix=None):
35 | return self._data.keys(prefix)
36 |
37 | def has_keys_with_prefix(self, prefix):
38 | return self._data.has_keys_with_prefix(prefix)
39 |
40 | def longest_prefix(self, prefix):
41 | return self._data.longest_prefix(prefix)
42 |
43 | def longest_prefix_item(self, prefix):
44 | return self._data.longest_prefix_item(prefix)
45 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/py.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 | from pip._vendor.six import text_type
3 |
4 | from bisect import bisect_left
5 |
6 | from ._base import Trie as ABCTrie
7 |
8 |
9 | class Trie(ABCTrie):
10 | def __init__(self, data):
11 | if not all(isinstance(x, text_type) for x in data.keys()):
12 | raise TypeError("All keys must be strings")
13 |
14 | self._data = data
15 | self._keys = sorted(data.keys())
16 | self._cachestr = ""
17 | self._cachepoints = (0, len(data))
18 |
19 | def __contains__(self, key):
20 | return key in self._data
21 |
22 | def __len__(self):
23 | return len(self._data)
24 |
25 | def __iter__(self):
26 | return iter(self._data)
27 |
28 | def __getitem__(self, key):
29 | return self._data[key]
30 |
31 | def keys(self, prefix=None):
32 | if prefix is None or prefix == "" or not self._keys:
33 | return set(self._keys)
34 |
35 | if prefix.startswith(self._cachestr):
36 | lo, hi = self._cachepoints
37 | start = i = bisect_left(self._keys, prefix, lo, hi)
38 | else:
39 | start = i = bisect_left(self._keys, prefix)
40 |
41 | keys = set()
42 | if start == len(self._keys):
43 | return keys
44 |
45 | while self._keys[i].startswith(prefix):
46 | keys.add(self._keys[i])
47 | i += 1
48 |
49 | self._cachestr = prefix
50 | self._cachepoints = (start, i)
51 |
52 | return keys
53 |
54 | def has_keys_with_prefix(self, prefix):
55 | if prefix in self._data:
56 | return True
57 |
58 | if prefix.startswith(self._cachestr):
59 | lo, hi = self._cachepoints
60 | i = bisect_left(self._keys, prefix, lo, hi)
61 | else:
62 | i = bisect_left(self._keys, prefix)
63 |
64 | if i == len(self._keys):
65 | return False
66 |
67 | return self._keys[i].startswith(prefix)
68 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/__init__.py
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from . import base
4 |
5 | from collections import OrderedDict
6 |
7 |
8 | def _attr_key(attr):
9 | """Return an appropriate key for an attribute for sorting
10 |
11 | Attributes have a namespace that can be either ``None`` or a string. We
12 | can't compare the two because they're different types, so we convert
13 | ``None`` to an empty string first.
14 |
15 | """
16 | return (attr[0][0] or ''), attr[0][1]
17 |
18 |
19 | class Filter(base.Filter):
20 | """Alphabetizes attributes for elements"""
21 | def __iter__(self):
22 | for token in base.Filter.__iter__(self):
23 | if token["type"] in ("StartTag", "EmptyTag"):
24 | attrs = OrderedDict()
25 | for name, value in sorted(token["data"].items(),
26 | key=_attr_key):
27 | attrs[name] = value
28 | token["data"] = attrs
29 | yield token
30 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/base.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 |
4 | class Filter(object):
5 | def __init__(self, source):
6 | self.source = source
7 |
8 | def __iter__(self):
9 | return iter(self.source)
10 |
11 | def __getattr__(self, name):
12 | return getattr(self.source, name)
13 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/whitespace.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | import re
4 |
5 | from . import base
6 | from ..constants import rcdataElements, spaceCharacters
7 | spaceCharacters = "".join(spaceCharacters)
8 |
9 | SPACES_REGEX = re.compile("[%s]+" % spaceCharacters)
10 |
11 |
12 | class Filter(base.Filter):
13 | """Collapses whitespace except in pre, textarea, and script elements"""
14 | spacePreserveElements = frozenset(["pre", "textarea"] + list(rcdataElements))
15 |
16 | def __iter__(self):
17 | preserve = 0
18 | for token in base.Filter.__iter__(self):
19 | type = token["type"]
20 | if type == "StartTag" \
21 | and (preserve or token["name"] in self.spacePreserveElements):
22 | preserve += 1
23 |
24 | elif type == "EndTag" and preserve:
25 | preserve -= 1
26 |
27 | elif not preserve and type == "SpaceCharacters" and token["data"]:
28 | # Test on token["data"] above to not introduce spaces where there were not
29 | token["data"] = " "
30 |
31 | elif not preserve and type == "Characters":
32 | token["data"] = collapse_spaces(token["data"])
33 |
34 | yield token
35 |
36 |
37 | def collapse_spaces(text):
38 | return SPACES_REGEX.sub(' ', text)
39 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/__init__.py:
--------------------------------------------------------------------------------
1 | """Tree adapters let you convert from one tree structure to another
2 |
3 | Example:
4 |
5 | .. code-block:: python
6 |
7 | from pip._vendor import html5lib
8 | from pip._vendor.html5lib.treeadapters import genshi
9 |
10 | doc = 'Hi!'
11 | treebuilder = html5lib.getTreeBuilder('etree')
12 | parser = html5lib.HTMLParser(tree=treebuilder)
13 | tree = parser.parse(doc)
14 | TreeWalker = html5lib.getTreeWalker('etree')
15 |
16 | genshi_tree = genshi.to_genshi(TreeWalker(tree))
17 |
18 | """
19 | from __future__ import absolute_import, division, unicode_literals
20 |
21 | from . import sax
22 |
23 | __all__ = ["sax"]
24 |
25 | try:
26 | from . import genshi # noqa
27 | except ImportError:
28 | pass
29 | else:
30 | __all__.append("genshi")
31 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/genshi.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from genshi.core import QName, Attrs
4 | from genshi.core import START, END, TEXT, COMMENT, DOCTYPE
5 |
6 |
7 | def to_genshi(walker):
8 | """Convert a tree to a genshi tree
9 |
10 | :arg walker: the treewalker to use to walk the tree to convert it
11 |
12 | :returns: generator of genshi nodes
13 |
14 | """
15 | text = []
16 | for token in walker:
17 | type = token["type"]
18 | if type in ("Characters", "SpaceCharacters"):
19 | text.append(token["data"])
20 | elif text:
21 | yield TEXT, "".join(text), (None, -1, -1)
22 | text = []
23 |
24 | if type in ("StartTag", "EmptyTag"):
25 | if token["namespace"]:
26 | name = "{%s}%s" % (token["namespace"], token["name"])
27 | else:
28 | name = token["name"]
29 | attrs = Attrs([(QName("{%s}%s" % attr if attr[0] is not None else attr[1]), value)
30 | for attr, value in token["data"].items()])
31 | yield (START, (QName(name), attrs), (None, -1, -1))
32 | if type == "EmptyTag":
33 | type = "EndTag"
34 |
35 | if type == "EndTag":
36 | if token["namespace"]:
37 | name = "{%s}%s" % (token["namespace"], token["name"])
38 | else:
39 | name = token["name"]
40 |
41 | yield END, QName(name), (None, -1, -1)
42 |
43 | elif type == "Comment":
44 | yield COMMENT, token["data"], (None, -1, -1)
45 |
46 | elif type == "Doctype":
47 | yield DOCTYPE, (token["name"], token["publicId"],
48 | token["systemId"]), (None, -1, -1)
49 |
50 | else:
51 | pass # FIXME: What to do?
52 |
53 | if text:
54 | yield TEXT, "".join(text), (None, -1, -1)
55 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/sax.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from xml.sax.xmlreader import AttributesNSImpl
4 |
5 | from ..constants import adjustForeignAttributes, unadjustForeignAttributes
6 |
7 | prefix_mapping = {}
8 | for prefix, localName, namespace in adjustForeignAttributes.values():
9 | if prefix is not None:
10 | prefix_mapping[prefix] = namespace
11 |
12 |
13 | def to_sax(walker, handler):
14 | """Call SAX-like content handler based on treewalker walker
15 |
16 | :arg walker: the treewalker to use to walk the tree to convert it
17 |
18 | :arg handler: SAX handler to use
19 |
20 | """
21 | handler.startDocument()
22 | for prefix, namespace in prefix_mapping.items():
23 | handler.startPrefixMapping(prefix, namespace)
24 |
25 | for token in walker:
26 | type = token["type"]
27 | if type == "Doctype":
28 | continue
29 | elif type in ("StartTag", "EmptyTag"):
30 | attrs = AttributesNSImpl(token["data"],
31 | unadjustForeignAttributes)
32 | handler.startElementNS((token["namespace"], token["name"]),
33 | token["name"],
34 | attrs)
35 | if type == "EmptyTag":
36 | handler.endElementNS((token["namespace"], token["name"]),
37 | token["name"])
38 | elif type == "EndTag":
39 | handler.endElementNS((token["namespace"], token["name"]),
40 | token["name"])
41 | elif type in ("Characters", "SpaceCharacters"):
42 | handler.characters(token["data"])
43 | elif type == "Comment":
44 | pass
45 | else:
46 | assert False, "Unknown token type"
47 |
48 | for prefix, namespace in prefix_mapping.items():
49 | handler.endPrefixMapping(prefix)
50 | handler.endDocument()
51 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/dom.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, division, unicode_literals
2 |
3 | from xml.dom import Node
4 |
5 | from . import base
6 |
7 |
8 | class TreeWalker(base.NonRecursiveTreeWalker):
9 | def getNodeDetails(self, node):
10 | if node.nodeType == Node.DOCUMENT_TYPE_NODE:
11 | return base.DOCTYPE, node.name, node.publicId, node.systemId
12 |
13 | elif node.nodeType in (Node.TEXT_NODE, Node.CDATA_SECTION_NODE):
14 | return base.TEXT, node.nodeValue
15 |
16 | elif node.nodeType == Node.ELEMENT_NODE:
17 | attrs = {}
18 | for attr in list(node.attributes.keys()):
19 | attr = node.getAttributeNode(attr)
20 | if attr.namespaceURI:
21 | attrs[(attr.namespaceURI, attr.localName)] = attr.value
22 | else:
23 | attrs[(None, attr.name)] = attr.value
24 | return (base.ELEMENT, node.namespaceURI, node.nodeName,
25 | attrs, node.hasChildNodes())
26 |
27 | elif node.nodeType == Node.COMMENT_NODE:
28 | return base.COMMENT, node.nodeValue
29 |
30 | elif node.nodeType in (Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE):
31 | return (base.DOCUMENT,)
32 |
33 | else:
34 | return base.UNKNOWN, node.nodeType
35 |
36 | def getFirstChild(self, node):
37 | return node.firstChild
38 |
39 | def getNextSibling(self, node):
40 | return node.nextSibling
41 |
42 | def getParentNode(self, node):
43 | return node.parentNode
44 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/__init__.py:
--------------------------------------------------------------------------------
1 | from .package_data import __version__
2 | from .core import *
3 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/compat.py:
--------------------------------------------------------------------------------
1 | from .core import *
2 | from .codec import *
3 |
4 | def ToASCII(label):
5 | return encode(label)
6 |
7 | def ToUnicode(label):
8 | return decode(label)
9 |
10 | def nameprep(s):
11 | raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol")
12 |
13 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/intranges.py:
--------------------------------------------------------------------------------
1 | """
2 | Given a list of integers, made up of (hopefully) a small number of long runs
3 | of consecutive integers, compute a representation of the form
4 | ((start1, end1), (start2, end2) ...). Then answer the question "was x present
5 | in the original list?" in time O(log(# runs)).
6 | """
7 |
8 | import bisect
9 |
10 | def intranges_from_list(list_):
11 | """Represent a list of integers as a sequence of ranges:
12 | ((start_0, end_0), (start_1, end_1), ...), such that the original
13 | integers are exactly those x such that start_i <= x < end_i for some i.
14 |
15 | Ranges are encoded as single integers (start << 32 | end), not as tuples.
16 | """
17 |
18 | sorted_list = sorted(list_)
19 | ranges = []
20 | last_write = -1
21 | for i in range(len(sorted_list)):
22 | if i+1 < len(sorted_list):
23 | if sorted_list[i] == sorted_list[i+1]-1:
24 | continue
25 | current_range = sorted_list[last_write+1:i+1]
26 | ranges.append(_encode_range(current_range[0], current_range[-1] + 1))
27 | last_write = i
28 |
29 | return tuple(ranges)
30 |
31 | def _encode_range(start, end):
32 | return (start << 32) | end
33 |
34 | def _decode_range(r):
35 | return (r >> 32), (r & ((1 << 32) - 1))
36 |
37 |
38 | def intranges_contain(int_, ranges):
39 | """Determine if `int_` falls into one of the ranges in `ranges`."""
40 | tuple_ = _encode_range(int_, 0)
41 | pos = bisect.bisect_left(ranges, tuple_)
42 | # we could be immediately ahead of a tuple (start, end)
43 | # with start < int_ <= end
44 | if pos > 0:
45 | left, right = _decode_range(ranges[pos-1])
46 | if left <= int_ < right:
47 | return True
48 | # or we could be immediately behind a tuple (int_, end)
49 | if pos < len(ranges):
50 | left, _ = _decode_range(ranges[pos])
51 | if left == int_:
52 | return True
53 | return False
54 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/package_data.py:
--------------------------------------------------------------------------------
1 | __version__ = '2.6'
2 |
3 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/__init__.py:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 | from pip._vendor.msgpack._version import version
3 | from pip._vendor.msgpack.exceptions import *
4 |
5 | from collections import namedtuple
6 |
7 |
8 | class ExtType(namedtuple('ExtType', 'code data')):
9 | """ExtType represents ext type in msgpack."""
10 | def __new__(cls, code, data):
11 | if not isinstance(code, int):
12 | raise TypeError("code must be int")
13 | if not isinstance(data, bytes):
14 | raise TypeError("data must be bytes")
15 | if not 0 <= code <= 127:
16 | raise ValueError("code must be 0~127")
17 | return super(ExtType, cls).__new__(cls, code, data)
18 |
19 |
20 | import os
21 | if os.environ.get('MSGPACK_PUREPYTHON'):
22 | from pip._vendor.msgpack.fallback import Packer, unpackb, Unpacker
23 | else:
24 | try:
25 | from pip._vendor.msgpack._packer import Packer
26 | from pip._vendor.msgpack._unpacker import unpackb, Unpacker
27 | except ImportError:
28 | from pip._vendor.msgpack.fallback import Packer, unpackb, Unpacker
29 |
30 |
31 | def pack(o, stream, **kwargs):
32 | """
33 | Pack object `o` and write it to `stream`
34 |
35 | See :class:`Packer` for options.
36 | """
37 | packer = Packer(**kwargs)
38 | stream.write(packer.pack(o))
39 |
40 |
41 | def packb(o, **kwargs):
42 | """
43 | Pack object `o` and return packed bytes
44 |
45 | See :class:`Packer` for options.
46 | """
47 | return Packer(**kwargs).pack(o)
48 |
49 |
50 | def unpack(stream, **kwargs):
51 | """
52 | Unpack an object from `stream`.
53 |
54 | Raises `ExtraData` when `stream` contains extra bytes.
55 | See :class:`Unpacker` for options.
56 | """
57 | data = stream.read()
58 | return unpackb(data, **kwargs)
59 |
60 |
61 | # alias for compatibility to simplejson/marshal/pickle.
62 | load = unpack
63 | loads = unpackb
64 |
65 | dump = pack
66 | dumps = packb
67 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/_version.py:
--------------------------------------------------------------------------------
1 | version = (0, 5, 6)
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/exceptions.py:
--------------------------------------------------------------------------------
1 | class UnpackException(Exception):
2 | """Deprecated. Use Exception instead to catch all exception during unpacking."""
3 |
4 |
5 | class BufferFull(UnpackException):
6 | pass
7 |
8 |
9 | class OutOfData(UnpackException):
10 | pass
11 |
12 |
13 | class UnpackValueError(UnpackException, ValueError):
14 | """Deprecated. Use ValueError instead."""
15 |
16 |
17 | class ExtraData(UnpackValueError):
18 | def __init__(self, unpacked, extra):
19 | self.unpacked = unpacked
20 | self.extra = extra
21 |
22 | def __str__(self):
23 | return "unpack(b) received extra data."
24 |
25 |
26 | class PackException(Exception):
27 | """Deprecated. Use Exception instead to catch all exception during packing."""
28 |
29 |
30 | class PackValueError(PackException, ValueError):
31 | """PackValueError is raised when type of input data is supported but it's value is unsupported.
32 |
33 | Deprecated. Use ValueError instead.
34 | """
35 |
36 |
37 | class PackOverflowError(PackValueError, OverflowError):
38 | """PackOverflowError is raised when integer value is out of range of msgpack support [-2**31, 2**32).
39 |
40 | Deprecated. Use ValueError instead.
41 | """
42 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/__about__.py:
--------------------------------------------------------------------------------
1 | # This file is dual licensed under the terms of the Apache License, Version
2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3 | # for complete details.
4 | from __future__ import absolute_import, division, print_function
5 |
6 | __all__ = [
7 | "__title__", "__summary__", "__uri__", "__version__", "__author__",
8 | "__email__", "__license__", "__copyright__",
9 | ]
10 |
11 | __title__ = "packaging"
12 | __summary__ = "Core utilities for Python packages"
13 | __uri__ = "https://github.com/pypa/packaging"
14 |
15 | __version__ = "17.1"
16 |
17 | __author__ = "Donald Stufft and individual contributors"
18 | __email__ = "donald@stufft.io"
19 |
20 | __license__ = "BSD or Apache License, Version 2.0"
21 | __copyright__ = "Copyright 2014-2016 %s" % __author__
22 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/__init__.py:
--------------------------------------------------------------------------------
1 | # This file is dual licensed under the terms of the Apache License, Version
2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3 | # for complete details.
4 | from __future__ import absolute_import, division, print_function
5 |
6 | from .__about__ import (
7 | __author__, __copyright__, __email__, __license__, __summary__, __title__,
8 | __uri__, __version__
9 | )
10 |
11 | __all__ = [
12 | "__title__", "__summary__", "__uri__", "__version__", "__author__",
13 | "__email__", "__license__", "__copyright__",
14 | ]
15 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/_compat.py:
--------------------------------------------------------------------------------
1 | # This file is dual licensed under the terms of the Apache License, Version
2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3 | # for complete details.
4 | from __future__ import absolute_import, division, print_function
5 |
6 | import sys
7 |
8 |
9 | PY2 = sys.version_info[0] == 2
10 | PY3 = sys.version_info[0] == 3
11 |
12 | # flake8: noqa
13 |
14 | if PY3:
15 | string_types = str,
16 | else:
17 | string_types = basestring,
18 |
19 |
20 | def with_metaclass(meta, *bases):
21 | """
22 | Create a base class with a metaclass.
23 | """
24 | # This requires a bit of explanation: the basic idea is to make a dummy
25 | # metaclass for one level of class instantiation that replaces itself with
26 | # the actual metaclass.
27 | class metaclass(meta):
28 | def __new__(cls, name, this_bases, d):
29 | return meta(name, bases, d)
30 | return type.__new__(metaclass, 'temporary_class', (), {})
31 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/_structures.py:
--------------------------------------------------------------------------------
1 | # This file is dual licensed under the terms of the Apache License, Version
2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3 | # for complete details.
4 | from __future__ import absolute_import, division, print_function
5 |
6 |
7 | class Infinity(object):
8 |
9 | def __repr__(self):
10 | return "Infinity"
11 |
12 | def __hash__(self):
13 | return hash(repr(self))
14 |
15 | def __lt__(self, other):
16 | return False
17 |
18 | def __le__(self, other):
19 | return False
20 |
21 | def __eq__(self, other):
22 | return isinstance(other, self.__class__)
23 |
24 | def __ne__(self, other):
25 | return not isinstance(other, self.__class__)
26 |
27 | def __gt__(self, other):
28 | return True
29 |
30 | def __ge__(self, other):
31 | return True
32 |
33 | def __neg__(self):
34 | return NegativeInfinity
35 |
36 |
37 | Infinity = Infinity()
38 |
39 |
40 | class NegativeInfinity(object):
41 |
42 | def __repr__(self):
43 | return "-Infinity"
44 |
45 | def __hash__(self):
46 | return hash(repr(self))
47 |
48 | def __lt__(self, other):
49 | return True
50 |
51 | def __le__(self, other):
52 | return True
53 |
54 | def __eq__(self, other):
55 | return isinstance(other, self.__class__)
56 |
57 | def __ne__(self, other):
58 | return not isinstance(other, self.__class__)
59 |
60 | def __gt__(self, other):
61 | return False
62 |
63 | def __ge__(self, other):
64 | return False
65 |
66 | def __neg__(self):
67 | return Infinity
68 |
69 |
70 | NegativeInfinity = NegativeInfinity()
71 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/utils.py:
--------------------------------------------------------------------------------
1 | # This file is dual licensed under the terms of the Apache License, Version
2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository
3 | # for complete details.
4 | from __future__ import absolute_import, division, print_function
5 |
6 | import re
7 |
8 | from .version import InvalidVersion, Version
9 |
10 |
11 | _canonicalize_regex = re.compile(r"[-_.]+")
12 |
13 |
14 | def canonicalize_name(name):
15 | # This is taken from PEP 503.
16 | return _canonicalize_regex.sub("-", name).lower()
17 |
18 |
19 | def canonicalize_version(version):
20 | """
21 | This is very similar to Version.__str__, but has one subtle differences
22 | with the way it handles the release segment.
23 | """
24 |
25 | try:
26 | version = Version(version)
27 | except InvalidVersion:
28 | # Legacy versions cannot be normalized
29 | return version
30 |
31 | parts = []
32 |
33 | # Epoch
34 | if version.epoch != 0:
35 | parts.append("{0}!".format(version.epoch))
36 |
37 | # Release segment
38 | # NB: This strips trailing '.0's to normalize
39 | parts.append(
40 | re.sub(
41 | r'(\.0)+$',
42 | '',
43 | ".".join(str(x) for x in version.release)
44 | )
45 | )
46 |
47 | # Pre-release
48 | if version.pre is not None:
49 | parts.append("".join(str(x) for x in version.pre))
50 |
51 | # Post-release
52 | if version.post is not None:
53 | parts.append(".post{0}".format(version.post))
54 |
55 | # Development release
56 | if version.dev is not None:
57 | parts.append(".dev{0}".format(version.dev))
58 |
59 | # Local version segment
60 | if version.local is not None:
61 | parts.append("+{0}".format(version.local))
62 |
63 | return "".join(parts)
64 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pkg_resources/py31compat.py:
--------------------------------------------------------------------------------
1 | import os
2 | import errno
3 | import sys
4 |
5 |
6 | def _makedirs_31(path, exist_ok=False):
7 | try:
8 | os.makedirs(path)
9 | except OSError as exc:
10 | if not exist_ok or exc.errno != errno.EEXIST:
11 | raise
12 |
13 |
14 | # rely on compatibility behavior until mode considerations
15 | # and exists_ok considerations are disentangled.
16 | # See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663
17 | needs_makedirs = (
18 | sys.version_info < (3, 2, 5) or
19 | (3, 3) <= sys.version_info < (3, 3, 6) or
20 | (3, 4) <= sys.version_info < (3, 4, 1)
21 | )
22 | makedirs = _makedirs_31 if needs_makedirs else os.makedirs
23 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/counter.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Copyright (c) 2012 Giorgos Verigakis
4 | #
5 | # Permission to use, copy, modify, and distribute this software for any
6 | # purpose with or without fee is hereby granted, provided that the above
7 | # copyright notice and this permission notice appear in all copies.
8 | #
9 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 | # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 |
17 | from __future__ import unicode_literals
18 | from . import Infinite, Progress
19 | from .helpers import WriteMixin
20 |
21 |
22 | class Counter(WriteMixin, Infinite):
23 | message = ''
24 | hide_cursor = True
25 |
26 | def update(self):
27 | self.write(str(self.index))
28 |
29 |
30 | class Countdown(WriteMixin, Progress):
31 | hide_cursor = True
32 |
33 | def update(self):
34 | self.write(str(self.remaining))
35 |
36 |
37 | class Stack(WriteMixin, Progress):
38 | phases = (' ', '▁', '▂', '▃', '▄', '▅', '▆', '▇', '█')
39 | hide_cursor = True
40 |
41 | def update(self):
42 | nphases = len(self.phases)
43 | i = min(nphases - 1, int(self.progress * nphases))
44 | self.write(self.phases[i])
45 |
46 |
47 | class Pie(Stack):
48 | phases = ('○', '◔', '◑', '◕', '●')
49 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/spinner.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | # Copyright (c) 2012 Giorgos Verigakis
4 | #
5 | # Permission to use, copy, modify, and distribute this software for any
6 | # purpose with or without fee is hereby granted, provided that the above
7 | # copyright notice and this permission notice appear in all copies.
8 | #
9 | # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 | # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 | # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 | # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 | # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 | # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 |
17 | from __future__ import unicode_literals
18 | from . import Infinite
19 | from .helpers import WriteMixin
20 |
21 |
22 | class Spinner(WriteMixin, Infinite):
23 | message = ''
24 | phases = ('-', '\\', '|', '/')
25 | hide_cursor = True
26 |
27 | def update(self):
28 | i = self.index % len(self.phases)
29 | self.write(self.phases[i])
30 |
31 |
32 | class PieSpinner(Spinner):
33 | phases = ['◷', '◶', '◵', '◴']
34 |
35 |
36 | class MoonSpinner(Spinner):
37 | phases = ['◑', '◒', '◐', '◓']
38 |
39 |
40 | class LineSpinner(Spinner):
41 | phases = ['⎺', '⎻', '⎼', '⎽', '⎼', '⎻']
42 |
43 | class PixelSpinner(Spinner):
44 | phases = ['⣾','⣷', '⣯', '⣟', '⡿', '⢿', '⣻', '⣽']
45 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/__init__.py:
--------------------------------------------------------------------------------
1 | from .core import TomlError
2 | from .parser import load, loads
3 | from .writer import dump, dumps
4 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/core.py:
--------------------------------------------------------------------------------
1 | class TomlError(RuntimeError):
2 | def __init__(self, message, line, col, filename):
3 | RuntimeError.__init__(self, message, line, col, filename)
4 | self.message = message
5 | self.line = line
6 | self.col = col
7 | self.filename = filename
8 |
9 | def __str__(self):
10 | return '{}({}, {}): {}'.format(self.filename, self.line, self.col, self.message)
11 |
12 | def __repr__(self):
13 | return 'TomlError({!r}, {!r}, {!r}, {!r})'.format(self.message, self.line, self.col, self.filename)
14 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/__version__.py:
--------------------------------------------------------------------------------
1 | # .-. .-. .-. . . .-. .-. .-. .-.
2 | # |( |- |.| | | |- `-. | `-.
3 | # ' ' `-' `-`.`-' `-' `-' ' `-'
4 |
5 | __title__ = 'requests'
6 | __description__ = 'Python HTTP for Humans.'
7 | __url__ = 'http://python-requests.org'
8 | __version__ = '2.18.4'
9 | __build__ = 0x021804
10 | __author__ = 'Kenneth Reitz'
11 | __author_email__ = 'me@kennethreitz.org'
12 | __license__ = 'Apache 2.0'
13 | __copyright__ = 'Copyright 2017 Kenneth Reitz'
14 | __cake__ = u'\u2728 \U0001f370 \u2728'
15 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/_internal_utils.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | requests._internal_utils
5 | ~~~~~~~~~~~~~~
6 |
7 | Provides utility functions that are consumed internally by Requests
8 | which depend on extremely few external helpers (such as compat)
9 | """
10 |
11 | from .compat import is_py2, builtin_str, str
12 |
13 |
14 | def to_native_string(string, encoding='ascii'):
15 | """Given a string object, regardless of type, returns a representation of
16 | that string in the native string type, encoding and decoding where
17 | necessary. This assumes ASCII unless told otherwise.
18 | """
19 | if isinstance(string, builtin_str):
20 | out = string
21 | else:
22 | if is_py2:
23 | out = string.encode(encoding)
24 | else:
25 | out = string.decode(encoding)
26 |
27 | return out
28 |
29 |
30 | def unicode_is_ascii(u_string):
31 | """Determine if unicode string only contains ASCII characters.
32 |
33 | :param str u_string: unicode string to check. Must be unicode
34 | and not Python 2 `str`.
35 | :rtype: bool
36 | """
37 | assert isinstance(u_string, str)
38 | try:
39 | u_string.encode('ascii')
40 | return True
41 | except UnicodeEncodeError:
42 | return False
43 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/certs.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 |
4 | """
5 | requests.certs
6 | ~~~~~~~~~~~~~~
7 |
8 | This module returns the preferred default CA certificate bundle. There is
9 | only one — the one from the certifi package.
10 |
11 | If you are packaging Requests, e.g., for a Linux distribution or a managed
12 | environment, you can change the definition of where() to return a separately
13 | packaged CA bundle.
14 | """
15 | from pip._vendor.certifi import where
16 |
17 | if __name__ == '__main__':
18 | print(where())
19 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/compat.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | requests.compat
5 | ~~~~~~~~~~~~~~~
6 |
7 | This module handles import compatibility issues between Python 2 and
8 | Python 3.
9 | """
10 |
11 | from pip._vendor import chardet
12 |
13 | import sys
14 |
15 | # -------
16 | # Pythons
17 | # -------
18 |
19 | # Syntax sugar.
20 | _ver = sys.version_info
21 |
22 | #: Python 2.x?
23 | is_py2 = (_ver[0] == 2)
24 |
25 | #: Python 3.x?
26 | is_py3 = (_ver[0] == 3)
27 |
28 | # Note: We've patched out simplejson support in pip because it prevents
29 | # upgrading simplejson on Windows.
30 | # try:
31 | # import simplejson as json
32 | # except (ImportError, SyntaxError):
33 | # # simplejson does not support Python 3.2, it throws a SyntaxError
34 | # # because of u'...' Unicode literals.
35 | import json
36 |
37 | # ---------
38 | # Specifics
39 | # ---------
40 |
41 | if is_py2:
42 | from urllib import (
43 | quote, unquote, quote_plus, unquote_plus, urlencode, getproxies,
44 | proxy_bypass, proxy_bypass_environment, getproxies_environment)
45 | from urlparse import urlparse, urlunparse, urljoin, urlsplit, urldefrag
46 | from urllib2 import parse_http_list
47 | import cookielib
48 | from Cookie import Morsel
49 | from StringIO import StringIO
50 |
51 | from pip._vendor.urllib3.packages.ordered_dict import OrderedDict
52 |
53 | builtin_str = str
54 | bytes = str
55 | str = unicode
56 | basestring = basestring
57 | numeric_types = (int, long, float)
58 | integer_types = (int, long)
59 |
60 | elif is_py3:
61 | from urllib.parse import urlparse, urlunparse, urljoin, urlsplit, urlencode, quote, unquote, quote_plus, unquote_plus, urldefrag
62 | from urllib.request import parse_http_list, getproxies, proxy_bypass, proxy_bypass_environment, getproxies_environment
63 | from http import cookiejar as cookielib
64 | from http.cookies import Morsel
65 | from io import StringIO
66 | from collections import OrderedDict
67 |
68 | builtin_str = str
69 | str = str
70 | bytes = bytes
71 | basestring = (str, bytes)
72 | numeric_types = (int, float)
73 | integer_types = (int,)
74 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/hooks.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | requests.hooks
5 | ~~~~~~~~~~~~~~
6 |
7 | This module provides the capabilities for the Requests hooks system.
8 |
9 | Available hooks:
10 |
11 | ``response``:
12 | The response generated from a Request.
13 | """
14 | HOOKS = ['response']
15 |
16 |
17 | def default_hooks():
18 | return dict((event, []) for event in HOOKS)
19 |
20 | # TODO: response is the only one
21 |
22 |
23 | def dispatch_hook(key, hooks, hook_data, **kwargs):
24 | """Dispatches a hook dictionary on a given piece of data."""
25 | hooks = hooks or dict()
26 | hooks = hooks.get(key)
27 | if hooks:
28 | if hasattr(hooks, '__call__'):
29 | hooks = [hooks]
30 | for hook in hooks:
31 | _hook_data = hook(hook_data, **kwargs)
32 | if _hook_data is not None:
33 | hook_data = _hook_data
34 | return hook_data
35 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/packages.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | # This code exists for backwards compatibility reasons.
4 | # I don't like it either. Just look the other way. :)
5 |
6 | for package in ('urllib3', 'idna', 'chardet'):
7 | vendored_package = "pip._vendor." + package
8 | locals()[package] = __import__(vendored_package)
9 | # This traversal is apparently necessary such that the identities are
10 | # preserved (requests.packages.urllib3.* is urllib3.*)
11 | for mod in list(sys.modules):
12 | if mod == vendored_package or mod.startswith(vendored_package + '.'):
13 | unprefixed_mod = mod[len("pip._vendor."):]
14 | sys.modules['pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod]
15 |
16 | # Kinda cool, though, right?
17 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/__init__.py
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | from . import ssl_match_hostname
4 |
5 | __all__ = ('ssl_match_hostname', )
6 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/backports/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/backports/__init__.py
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/backports/makefile.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | backports.makefile
4 | ~~~~~~~~~~~~~~~~~~
5 |
6 | Backports the Python 3 ``socket.makefile`` method for use with anything that
7 | wants to create a "fake" socket object.
8 | """
9 | import io
10 |
11 | from socket import SocketIO
12 |
13 |
14 | def backport_makefile(self, mode="r", buffering=None, encoding=None,
15 | errors=None, newline=None):
16 | """
17 | Backport of ``socket.makefile`` from Python 3.5.
18 | """
19 | if not set(mode) <= set(["r", "w", "b"]):
20 | raise ValueError(
21 | "invalid mode %r (only r, w, b allowed)" % (mode,)
22 | )
23 | writing = "w" in mode
24 | reading = "r" in mode or not writing
25 | assert reading or writing
26 | binary = "b" in mode
27 | rawmode = ""
28 | if reading:
29 | rawmode += "r"
30 | if writing:
31 | rawmode += "w"
32 | raw = SocketIO(self, rawmode)
33 | self._makefile_refs += 1
34 | if buffering is None:
35 | buffering = -1
36 | if buffering < 0:
37 | buffering = io.DEFAULT_BUFFER_SIZE
38 | if buffering == 0:
39 | if not binary:
40 | raise ValueError("unbuffered streams must be binary")
41 | return raw
42 | if reading and writing:
43 | buffer = io.BufferedRWPair(raw, raw, buffering)
44 | elif reading:
45 | buffer = io.BufferedReader(raw, buffering)
46 | else:
47 | assert writing
48 | buffer = io.BufferedWriter(raw, buffering)
49 | if binary:
50 | return buffer
51 | text = io.TextIOWrapper(buffer, encoding, errors, newline)
52 | text.mode = mode
53 | return text
54 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | try:
4 | # Our match_hostname function is the same as 3.5's, so we only want to
5 | # import the match_hostname function if it's at least that good.
6 | if sys.version_info < (3, 5):
7 | raise ImportError("Fallback to vendored code")
8 |
9 | from ssl import CertificateError, match_hostname
10 | except ImportError:
11 | try:
12 | # Backport of the function from a pypi module
13 | from backports.ssl_match_hostname import CertificateError, match_hostname
14 | except ImportError:
15 | # Our vendored copy
16 | from ._implementation import CertificateError, match_hostname
17 |
18 | # Not needed, but documenting what we provide.
19 | __all__ = ('CertificateError', 'match_hostname')
20 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 | # For backwards compatibility, provide imports that used to be here.
3 | from .connection import is_connection_dropped
4 | from .request import make_headers
5 | from .response import is_fp_closed
6 | from .ssl_ import (
7 | SSLContext,
8 | HAS_SNI,
9 | IS_PYOPENSSL,
10 | IS_SECURETRANSPORT,
11 | assert_fingerprint,
12 | resolve_cert_reqs,
13 | resolve_ssl_version,
14 | ssl_wrap_socket,
15 | )
16 | from .timeout import (
17 | current_time,
18 | Timeout,
19 | )
20 |
21 | from .retry import Retry
22 | from .url import (
23 | get_host,
24 | parse_url,
25 | split_first,
26 | Url,
27 | )
28 | from .wait import (
29 | wait_for_read,
30 | wait_for_write
31 | )
32 |
33 | __all__ = (
34 | 'HAS_SNI',
35 | 'IS_PYOPENSSL',
36 | 'IS_SECURETRANSPORT',
37 | 'SSLContext',
38 | 'Retry',
39 | 'Timeout',
40 | 'Url',
41 | 'assert_fingerprint',
42 | 'current_time',
43 | 'is_connection_dropped',
44 | 'is_fp_closed',
45 | 'get_host',
46 | 'parse_url',
47 | 'make_headers',
48 | 'resolve_cert_reqs',
49 | 'resolve_ssl_version',
50 | 'split_first',
51 | 'ssl_wrap_socket',
52 | 'wait_for_read',
53 | 'wait_for_write'
54 | )
55 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/wait.py:
--------------------------------------------------------------------------------
1 | from .selectors import (
2 | HAS_SELECT,
3 | DefaultSelector,
4 | EVENT_READ,
5 | EVENT_WRITE
6 | )
7 |
8 |
9 | def _wait_for_io_events(socks, events, timeout=None):
10 | """ Waits for IO events to be available from a list of sockets
11 | or optionally a single socket if passed in. Returns a list of
12 | sockets that can be interacted with immediately. """
13 | if not HAS_SELECT:
14 | raise ValueError('Platform does not have a selector')
15 | if not isinstance(socks, list):
16 | # Probably just a single socket.
17 | if hasattr(socks, "fileno"):
18 | socks = [socks]
19 | # Otherwise it might be a non-list iterable.
20 | else:
21 | socks = list(socks)
22 | with DefaultSelector() as selector:
23 | for sock in socks:
24 | selector.register(sock, events)
25 | return [key[0].fileobj for key in
26 | selector.select(timeout) if key[1] & events]
27 |
28 |
29 | def wait_for_read(socks, timeout=None):
30 | """ Waits for reading to be available from a list of sockets
31 | or optionally a single socket if passed in. Returns a list of
32 | sockets that can be read from immediately. """
33 | return _wait_for_io_events(socks, EVENT_READ, timeout)
34 |
35 |
36 | def wait_for_write(socks, timeout=None):
37 | """ Waits for writing to be available from a list of sockets
38 | or optionally a single socket if passed in. Returns a list of
39 | sockets that can be written to immediately. """
40 | return _wait_for_io_events(socks, EVENT_WRITE, timeout)
41 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/mklabels.py:
--------------------------------------------------------------------------------
1 | """
2 |
3 | webencodings.mklabels
4 | ~~~~~~~~~~~~~~~~~~~~~
5 |
6 | Regenarate the webencodings.labels module.
7 |
8 | :copyright: Copyright 2012 by Simon Sapin
9 | :license: BSD, see LICENSE for details.
10 |
11 | """
12 |
13 | import json
14 | try:
15 | from urllib import urlopen
16 | except ImportError:
17 | from urllib.request import urlopen
18 |
19 |
20 | def assert_lower(string):
21 | assert string == string.lower()
22 | return string
23 |
24 |
25 | def generate(url):
26 | parts = ['''\
27 | """
28 |
29 | webencodings.labels
30 | ~~~~~~~~~~~~~~~~~~~
31 |
32 | Map encoding labels to their name.
33 |
34 | :copyright: Copyright 2012 by Simon Sapin
35 | :license: BSD, see LICENSE for details.
36 |
37 | """
38 |
39 | # XXX Do not edit!
40 | # This file is automatically generated by mklabels.py
41 |
42 | LABELS = {
43 | ''']
44 | labels = [
45 | (repr(assert_lower(label)).lstrip('u'),
46 | repr(encoding['name']).lstrip('u'))
47 | for category in json.loads(urlopen(url).read().decode('ascii'))
48 | for encoding in category['encodings']
49 | for label in encoding['labels']]
50 | max_len = max(len(label) for label, name in labels)
51 | parts.extend(
52 | ' %s:%s %s,\n' % (label, ' ' * (max_len - len(label)), name)
53 | for label, name in labels)
54 | parts.append('}')
55 | return ''.join(parts)
56 |
57 |
58 | if __name__ == '__main__':
59 | print(generate('http://encoding.spec.whatwg.org/encodings.json'))
60 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests-2.25.0.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests-2.25.0.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.35.1)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests-2.25.0.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | requests
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/__version__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/__version__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/_internal_utils.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/_internal_utils.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/adapters.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/adapters.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/api.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/api.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/auth.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/auth.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/certs.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/certs.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/compat.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/compat.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/cookies.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/cookies.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/exceptions.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/exceptions.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/help.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/help.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/hooks.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/hooks.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/models.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/models.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/packages.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/packages.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/sessions.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/sessions.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/status_codes.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/status_codes.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/structures.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/structures.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__pycache__/utils.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/requests/__pycache__/utils.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/__version__.py:
--------------------------------------------------------------------------------
1 | # .-. .-. .-. . . .-. .-. .-. .-.
2 | # |( |- |.| | | |- `-. | `-.
3 | # ' ' `-' `-`.`-' `-' `-' ' `-'
4 |
5 | __title__ = 'requests'
6 | __description__ = 'Python HTTP for Humans.'
7 | __url__ = 'https://requests.readthedocs.io'
8 | __version__ = '2.25.0'
9 | __build__ = 0x022500
10 | __author__ = 'Kenneth Reitz'
11 | __author_email__ = 'me@kennethreitz.org'
12 | __license__ = 'Apache 2.0'
13 | __copyright__ = 'Copyright 2020 Kenneth Reitz'
14 | __cake__ = u'\u2728 \U0001f370 \u2728'
15 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/_internal_utils.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | requests._internal_utils
5 | ~~~~~~~~~~~~~~
6 |
7 | Provides utility functions that are consumed internally by Requests
8 | which depend on extremely few external helpers (such as compat)
9 | """
10 |
11 | from .compat import is_py2, builtin_str, str
12 |
13 |
14 | def to_native_string(string, encoding='ascii'):
15 | """Given a string object, regardless of type, returns a representation of
16 | that string in the native string type, encoding and decoding where
17 | necessary. This assumes ASCII unless told otherwise.
18 | """
19 | if isinstance(string, builtin_str):
20 | out = string
21 | else:
22 | if is_py2:
23 | out = string.encode(encoding)
24 | else:
25 | out = string.decode(encoding)
26 |
27 | return out
28 |
29 |
30 | def unicode_is_ascii(u_string):
31 | """Determine if unicode string only contains ASCII characters.
32 |
33 | :param str u_string: unicode string to check. Must be unicode
34 | and not Python 2 `str`.
35 | :rtype: bool
36 | """
37 | assert isinstance(u_string, str)
38 | try:
39 | u_string.encode('ascii')
40 | return True
41 | except UnicodeEncodeError:
42 | return False
43 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/certs.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 |
4 | """
5 | requests.certs
6 | ~~~~~~~~~~~~~~
7 |
8 | This module returns the preferred default CA certificate bundle. There is
9 | only one — the one from the certifi package.
10 |
11 | If you are packaging Requests, e.g., for a Linux distribution or a managed
12 | environment, you can change the definition of where() to return a separately
13 | packaged CA bundle.
14 | """
15 | from certifi import where
16 |
17 | if __name__ == '__main__':
18 | print(where())
19 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/compat.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | requests.compat
5 | ~~~~~~~~~~~~~~~
6 |
7 | This module handles import compatibility issues between Python 2 and
8 | Python 3.
9 | """
10 |
11 | import chardet
12 |
13 | import sys
14 |
15 | # -------
16 | # Pythons
17 | # -------
18 |
19 | # Syntax sugar.
20 | _ver = sys.version_info
21 |
22 | #: Python 2.x?
23 | is_py2 = (_ver[0] == 2)
24 |
25 | #: Python 3.x?
26 | is_py3 = (_ver[0] == 3)
27 |
28 | try:
29 | import simplejson as json
30 | except ImportError:
31 | import json
32 |
33 | # ---------
34 | # Specifics
35 | # ---------
36 |
37 | if is_py2:
38 | from urllib import (
39 | quote, unquote, quote_plus, unquote_plus, urlencode, getproxies,
40 | proxy_bypass, proxy_bypass_environment, getproxies_environment)
41 | from urlparse import urlparse, urlunparse, urljoin, urlsplit, urldefrag
42 | from urllib2 import parse_http_list
43 | import cookielib
44 | from Cookie import Morsel
45 | from StringIO import StringIO
46 | # Keep OrderedDict for backwards compatibility.
47 | from collections import Callable, Mapping, MutableMapping, OrderedDict
48 |
49 |
50 | builtin_str = str
51 | bytes = str
52 | str = unicode
53 | basestring = basestring
54 | numeric_types = (int, long, float)
55 | integer_types = (int, long)
56 |
57 | elif is_py3:
58 | from urllib.parse import urlparse, urlunparse, urljoin, urlsplit, urlencode, quote, unquote, quote_plus, unquote_plus, urldefrag
59 | from urllib.request import parse_http_list, getproxies, proxy_bypass, proxy_bypass_environment, getproxies_environment
60 | from http import cookiejar as cookielib
61 | from http.cookies import Morsel
62 | from io import StringIO
63 | # Keep OrderedDict for backwards compatibility.
64 | from collections import OrderedDict
65 | from collections.abc import Callable, Mapping, MutableMapping
66 |
67 | builtin_str = str
68 | str = str
69 | bytes = bytes
70 | basestring = (str, bytes)
71 | numeric_types = (int, float)
72 | integer_types = (int,)
73 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/hooks.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | """
4 | requests.hooks
5 | ~~~~~~~~~~~~~~
6 |
7 | This module provides the capabilities for the Requests hooks system.
8 |
9 | Available hooks:
10 |
11 | ``response``:
12 | The response generated from a Request.
13 | """
14 | HOOKS = ['response']
15 |
16 |
17 | def default_hooks():
18 | return {event: [] for event in HOOKS}
19 |
20 | # TODO: response is the only one
21 |
22 |
23 | def dispatch_hook(key, hooks, hook_data, **kwargs):
24 | """Dispatches a hook dictionary on a given piece of data."""
25 | hooks = hooks or {}
26 | hooks = hooks.get(key)
27 | if hooks:
28 | if hasattr(hooks, '__call__'):
29 | hooks = [hooks]
30 | for hook in hooks:
31 | _hook_data = hook(hook_data, **kwargs)
32 | if _hook_data is not None:
33 | hook_data = _hook_data
34 | return hook_data
35 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/requests/packages.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | # This code exists for backwards compatibility reasons.
4 | # I don't like it either. Just look the other way. :)
5 |
6 | for package in ('urllib3', 'idna', 'chardet'):
7 | locals()[package] = __import__(package)
8 | # This traversal is apparently necessary such that the identities are
9 | # preserved (requests.packages.urllib3.* is urllib3.*)
10 | for mod in list(sys.modules):
11 | if mod == package or mod.startswith(package + '.'):
12 | sys.modules['requests.packages.' + mod] = sys.modules[mod]
13 |
14 | # Kinda cool, though, right?
15 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/setuptools-39.1.0-py3.8.egg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/setuptools-39.1.0-py3.8.egg
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/setuptools.pth:
--------------------------------------------------------------------------------
1 | ./setuptools-39.1.0-py3.8.egg
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3-1.26.2.dist-info/INSTALLER:
--------------------------------------------------------------------------------
1 | pip
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3-1.26.2.dist-info/LICENSE.txt:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2008-2020 Andrey Petrov and contributors (see CONTRIBUTORS.txt)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3-1.26.2.dist-info/WHEEL:
--------------------------------------------------------------------------------
1 | Wheel-Version: 1.0
2 | Generator: bdist_wheel (0.35.1)
3 | Root-Is-Purelib: true
4 | Tag: py2-none-any
5 | Tag: py3-none-any
6 |
7 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3-1.26.2.dist-info/top_level.txt:
--------------------------------------------------------------------------------
1 | urllib3
2 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/_collections.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/_collections.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/_version.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/_version.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/connection.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/connection.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/connectionpool.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/connectionpool.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/exceptions.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/exceptions.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/fields.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/fields.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/filepost.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/filepost.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/poolmanager.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/poolmanager.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/request.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/request.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/__pycache__/response.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/__pycache__/response.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/_version.py:
--------------------------------------------------------------------------------
1 | # This file is protected via CODEOWNERS
2 | __version__ = "1.26.2"
3 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/__init__.py
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/_appengine_environ.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/_appengine_environ.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/appengine.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/appengine.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/ntlmpool.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/ntlmpool.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/securetransport.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/securetransport.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/socks.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/__pycache__/socks.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/_appengine_environ.py:
--------------------------------------------------------------------------------
1 | """
2 | This module provides means to detect the App Engine environment.
3 | """
4 |
5 | import os
6 |
7 |
8 | def is_appengine():
9 | return is_local_appengine() or is_prod_appengine()
10 |
11 |
12 | def is_appengine_sandbox():
13 | """Reports if the app is running in the first generation sandbox.
14 |
15 | The second generation runtimes are technically still in a sandbox, but it
16 | is much less restrictive, so generally you shouldn't need to check for it.
17 | see https://cloud.google.com/appengine/docs/standard/runtimes
18 | """
19 | return is_appengine() and os.environ["APPENGINE_RUNTIME"] == "python27"
20 |
21 |
22 | def is_local_appengine():
23 | return "APPENGINE_RUNTIME" in os.environ and os.environ.get(
24 | "SERVER_SOFTWARE", ""
25 | ).startswith("Development/")
26 |
27 |
28 | def is_prod_appengine():
29 | return "APPENGINE_RUNTIME" in os.environ and os.environ.get(
30 | "SERVER_SOFTWARE", ""
31 | ).startswith("Google App Engine/")
32 |
33 |
34 | def is_prod_appengine_mvms():
35 | """Deprecated."""
36 | return False
37 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/_securetransport/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/_securetransport/__init__.py
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/packages/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | from . import ssl_match_hostname
4 |
5 | __all__ = ("ssl_match_hostname",)
6 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/packages/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/packages/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/packages/__pycache__/six.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/packages/__pycache__/six.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/packages/backports/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/packages/backports/__init__.py
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/packages/backports/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/packages/backports/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/packages/backports/__pycache__/makefile.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/packages/backports/__pycache__/makefile.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/packages/backports/makefile.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | """
3 | backports.makefile
4 | ~~~~~~~~~~~~~~~~~~
5 |
6 | Backports the Python 3 ``socket.makefile`` method for use with anything that
7 | wants to create a "fake" socket object.
8 | """
9 | import io
10 | from socket import SocketIO
11 |
12 |
13 | def backport_makefile(
14 | self, mode="r", buffering=None, encoding=None, errors=None, newline=None
15 | ):
16 | """
17 | Backport of ``socket.makefile`` from Python 3.5.
18 | """
19 | if not set(mode) <= {"r", "w", "b"}:
20 | raise ValueError("invalid mode %r (only r, w, b allowed)" % (mode,))
21 | writing = "w" in mode
22 | reading = "r" in mode or not writing
23 | assert reading or writing
24 | binary = "b" in mode
25 | rawmode = ""
26 | if reading:
27 | rawmode += "r"
28 | if writing:
29 | rawmode += "w"
30 | raw = SocketIO(self, rawmode)
31 | self._makefile_refs += 1
32 | if buffering is None:
33 | buffering = -1
34 | if buffering < 0:
35 | buffering = io.DEFAULT_BUFFER_SIZE
36 | if buffering == 0:
37 | if not binary:
38 | raise ValueError("unbuffered streams must be binary")
39 | return raw
40 | if reading and writing:
41 | buffer = io.BufferedRWPair(raw, raw, buffering)
42 | elif reading:
43 | buffer = io.BufferedReader(raw, buffering)
44 | else:
45 | assert writing
46 | buffer = io.BufferedWriter(raw, buffering)
47 | if binary:
48 | return buffer
49 | text = io.TextIOWrapper(buffer, encoding, errors, newline)
50 | text.mode = mode
51 | return text
52 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/packages/ssl_match_hostname/__init__.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | try:
4 | # Our match_hostname function is the same as 3.5's, so we only want to
5 | # import the match_hostname function if it's at least that good.
6 | if sys.version_info < (3, 5):
7 | raise ImportError("Fallback to vendored code")
8 |
9 | from ssl import CertificateError, match_hostname
10 | except ImportError:
11 | try:
12 | # Backport of the function from a pypi module
13 | from backports.ssl_match_hostname import ( # type: ignore
14 | CertificateError,
15 | match_hostname,
16 | )
17 | except ImportError:
18 | # Our vendored copy
19 | from ._implementation import CertificateError, match_hostname # type: ignore
20 |
21 | # Not needed, but documenting what we provide.
22 | __all__ = ("CertificateError", "match_hostname")
23 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__init__.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import
2 |
3 | # For backwards compatibility, provide imports that used to be here.
4 | from .connection import is_connection_dropped
5 | from .request import SKIP_HEADER, SKIPPABLE_HEADERS, make_headers
6 | from .response import is_fp_closed
7 | from .retry import Retry
8 | from .ssl_ import (
9 | ALPN_PROTOCOLS,
10 | HAS_SNI,
11 | IS_PYOPENSSL,
12 | IS_SECURETRANSPORT,
13 | PROTOCOL_TLS,
14 | SSLContext,
15 | assert_fingerprint,
16 | resolve_cert_reqs,
17 | resolve_ssl_version,
18 | ssl_wrap_socket,
19 | )
20 | from .timeout import Timeout, current_time
21 | from .url import Url, get_host, parse_url, split_first
22 | from .wait import wait_for_read, wait_for_write
23 |
24 | __all__ = (
25 | "HAS_SNI",
26 | "IS_PYOPENSSL",
27 | "IS_SECURETRANSPORT",
28 | "SSLContext",
29 | "PROTOCOL_TLS",
30 | "ALPN_PROTOCOLS",
31 | "Retry",
32 | "Timeout",
33 | "Url",
34 | "assert_fingerprint",
35 | "current_time",
36 | "is_connection_dropped",
37 | "is_fp_closed",
38 | "get_host",
39 | "parse_url",
40 | "make_headers",
41 | "resolve_cert_reqs",
42 | "resolve_ssl_version",
43 | "split_first",
44 | "ssl_wrap_socket",
45 | "wait_for_read",
46 | "wait_for_write",
47 | "SKIP_HEADER",
48 | "SKIPPABLE_HEADERS",
49 | )
50 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/__init__.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/__init__.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/connection.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/connection.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/proxy.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/proxy.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/queue.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/queue.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/request.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/request.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/response.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/response.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/retry.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/retry.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/ssl_.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/ssl_.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/ssltransport.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/ssltransport.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/timeout.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/timeout.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/url.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/url.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/wait.cpython-38.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hengxuZ/binance-quantization/47b8bdf3fc13633971ecbd52ccaf1b4cb279aa36/venv/lib/python3.8/site-packages/urllib3/util/__pycache__/wait.cpython-38.pyc
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/proxy.py:
--------------------------------------------------------------------------------
1 | from .ssl_ import create_urllib3_context, resolve_cert_reqs, resolve_ssl_version
2 |
3 |
4 | def connection_requires_http_tunnel(
5 | proxy_url=None, proxy_config=None, destination_scheme=None
6 | ):
7 | """
8 | Returns True if the connection requires an HTTP CONNECT through the proxy.
9 |
10 | :param URL proxy_url:
11 | URL of the proxy.
12 | :param ProxyConfig proxy_config:
13 | Proxy configuration from poolmanager.py
14 | :param str destination_scheme:
15 | The scheme of the destination. (i.e https, http, etc)
16 | """
17 | # If we're not using a proxy, no way to use a tunnel.
18 | if proxy_url is None:
19 | return False
20 |
21 | # HTTP destinations never require tunneling, we always forward.
22 | if destination_scheme == "http":
23 | return False
24 |
25 | # Support for forwarding with HTTPS proxies and HTTPS destinations.
26 | if (
27 | proxy_url.scheme == "https"
28 | and proxy_config
29 | and proxy_config.use_forwarding_for_https
30 | ):
31 | return False
32 |
33 | # Otherwise always use a tunnel.
34 | return True
35 |
36 |
37 | def create_proxy_ssl_context(
38 | ssl_version, cert_reqs, ca_certs=None, ca_cert_dir=None, ca_cert_data=None
39 | ):
40 | """
41 | Generates a default proxy ssl context if one hasn't been provided by the
42 | user.
43 | """
44 | ssl_context = create_urllib3_context(
45 | ssl_version=resolve_ssl_version(ssl_version),
46 | cert_reqs=resolve_cert_reqs(cert_reqs),
47 | )
48 | if (
49 | not ca_certs
50 | and not ca_cert_dir
51 | and not ca_cert_data
52 | and hasattr(ssl_context, "load_default_certs")
53 | ):
54 | ssl_context.load_default_certs()
55 |
56 | return ssl_context
57 |
--------------------------------------------------------------------------------
/venv/lib/python3.8/site-packages/urllib3/util/queue.py:
--------------------------------------------------------------------------------
1 | import collections
2 |
3 | from ..packages import six
4 | from ..packages.six.moves import queue
5 |
6 | if six.PY2:
7 | # Queue is imported for side effects on MS Windows. See issue #229.
8 | import Queue as _unused_module_Queue # noqa: F401
9 |
10 |
11 | class LifoQueue(queue.Queue):
12 | def _init(self, _):
13 | self.queue = collections.deque()
14 |
15 | def _qsize(self, len=len):
16 | return len(self.queue)
17 |
18 | def _put(self, item):
19 | self.queue.append(item)
20 |
21 | def _get(self):
22 | return self.queue.pop()
23 |
--------------------------------------------------------------------------------
/venv/pip-selfcheck.json:
--------------------------------------------------------------------------------
1 | {"last_check":"2020-12-03T06:46:18Z","pypi_version":"20.3"}
--------------------------------------------------------------------------------
/venv/pyvenv.cfg:
--------------------------------------------------------------------------------
1 | home = /usr/local/bin
2 | include-system-site-packages = false
3 | version = 3.8.3
4 |
--------------------------------------------------------------------------------