# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     language: python
#     name: python3
# ---

document = """Developing the Package Index
PyPI.nextgen:
Currently, as of 2013-11-11, PyPI is undergoing a complete rewrite from scratch, and as a result much of the information on this page is not actual. You can see preview of the new site at:

https://pypi.org/

The development moved from Mercurial (Python) to Git (C, shell). License changed from BSD-3 to Apache 2.0. Project code named 'warehouse' can be downloaded from:

https://github.com/pypa/warehouse

Previous PyPI version
"previous" version of PyPI is the code that was running on http://pypi.python.org from ... till the end of 2013. It was originally written by ... and was running on ... . The information below should help you get around the code.

The PyPI code was hosted under the Python Packaging Authority project: https://bitbucket.org/pypa/pypi and is now on GItHub: https://github.com/pypa/pypi-legacy

Bug and patch tracker https://github.com/pypa/pypi-legacy/issues

Mailing List (Gmane web interface)

API that is used by easy_install http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api

PyPIOAuth - authentication library for Google and Launchpad logins

PyPI architecture and endpoints
PyPI is a WSGI application that can be executed standalone using python pypi.wsgi command if all requirements are met. pypi.wsgi contains usual WSGI wrapper code and delegates request processing to WebUI.run() method from webui.py. This method just opens DB and handles exceptions, actual request processing is done in WebUI.inner_run(). This method analyzes URL endpoint and executes appropriate handler. As of 2011-04, the rules to match endpoints to handlers are the following:

/simple

WebUI.run_simple()

dump all package names on single html page

/simple/(.+)/

WebUI.run_simple()

dump all links for a package in html list

/serversig/(.+)/

.run_simple_sign()

save as above, but signed by server

/mirrors

.mirrors()

display static page with a list of mirrors

/daytime

.daytime()

display current server time

...

XML-RPC requests are detected by CONTENT_TYPE=text/xml variable in CGI environment and processed by rpc.RequestHandler().__call__(). List of XML-RPC "endpoints" is available on PyPIXmlRpc page.

Testing Your Stuff Against PyPI
If you need to test stuff against PyPI (registration, uploading, API activities) then please use the alternative server "testpypi.python.org".

TO-DO list
A dump of download counts.
A big structured dump of all package meta-data.
A link from package to RTFD.
PEP for metadata 1.2 -- not finished and needs more catalog-sig discussion)

documented procedures for "taking over" entries should the original owner of the entry go away (and any required system support)
tooltips for field labels
change notification emails
per-classifier "wiki" content to allow description and discussion around each classifier (perhaps what packages are available and how they relate to one another)
screenshot images (with thumbnailing and a "latest screenshot" on the front page?) - or perhaps icons instead of thumbnails for some packages?
Something that's been requested, but needs much more thought and analysis to see whether it causes any problems: the ability to treat project names and versions as case-insensitive, while removing extraneous characters (as in pkg_resources.safe_name()) for purposes both of searching and determining name uniqueness when registering.

Done
command-line tool to query pypi and fetch entries: yolk

Not Going TO-DO
Edit PEP 243 to reflect reality. The interface is implemented in the distutils register and upload commands. This code is good enough for documentation, especially because it's the only implementation necessary.

moderated user reviews and ratings (this would require quite a lot of support from volunteers though)
Proposals
EnhancedPyPI Enhance multiple package index servers support in Distutils.

Development Environment Hints
WARNING: Most of the information in here are out of date, see the instruction on the PyPI-legacy GitHub repository for more information, and most likely ask the developers for hints before trying to work on PyPI locally on your own !

PyPI uses postgresql 9.5 as a database, with a roll it yourself web framework based on different python modules. It uses apache2 as the web server.

It can run using wsgi, cgi, fcgi and mod_python.

Before restoring database, "pypi" role must exists:
Ask RichardJones if you need a database dump. Note that dumps should not be imported into an existing database that has had the pkdump_schema.sql DDL script run against it. The pg_dump file will create all of the database tables, columns, indexes, foreign keys, etc. that are required.

if your config.ini isn't in /tmp/pypi.ini. You can leave it as 'config.ini' if it's in the same directory as pypi.py.

You will need to add cheesecake_password=<PASSWORD> into the config.ini in the webui section.

To integrate it with Apache, we recommend to use WSGI through mod_wsgi. Your configuration should look like this:. """

# +
document = document.replace('\n', ' ')
document = document.replace('  ', '.')

document = document.strip()
document = document.replace('...', '')
document = document.replace('..', '.')
document
# -

import spacy
nlp = spacy.load('en_core_web_sm')
doc = nlp(document)

for i, sent in enumerate(doc.sents):
    print(i, ' ' ,sent)

#Dot '.'
doc[sent.end -1]

for i, sent in enumerate(doc.sents):
    if doc[sent.start].is_title == True and doc[sent.end - 1].text == '.' :
        print(i, ' ' ,sent)



StarcoderdataJupyterScriptsDedupFiltered