Saravanan666/pypi-org huggingface dataset:
Package: plt-cli
pltRead lists of numbers from stdin.For each list, numbers are separated by by[^0-9.\-eE+], and can be used for 3
distinct types of plots:1) --line (-l)
2) --line_2d (-l2)
3) --scatter (-s)
4) --histogram (-t)
5) --normalized_histogram (-nt)With options 1 and 4 and 5, the list of numbers is interpreted as a 1D array, i.e.,(x1, x2, ..., xn).For 2 and 3, the format is(x1, y1, x2, y2, ... , xn, yn)Lists are separated byPLT_SEPARATOR, whose default value is&&.
Package: pltflow
pltflowWhat ispltflow?pltflowis a wrapper for matplotlib/seaborn to create beautiful chartsIt makes use of predifined styles to completely automate the chart creation processIt also uses the concept of pipelines to create charts as if one is following a recipepltflowis not intended for quick and beautiful plots.
You dont need to know anything about styling to make a pretty chart. But of course you can modify any parameter using matplotlib/seaborn arguments.✅  Installationpltflowcan be installed using pip.pipinstallpltflow📌  Requirementspython 3.6 or abovematplotlib 2.2 or aboveseaborn 0.9.0 or abovepandas 1.0.0 or above🔨 Usage*pltflowworks with pandas dataframes as data sourceIt uses pipeline to convey the 'recipe' of the chart(flow# from the pltflow package.plot(df,primary="YrSold",secondary="ppsqm",style="vox")# plot the df, define variables and style.set_ylabel("PRICE PER M2")# set the y label text.set_xlabel("YEAR SOLD")# set the x label text.set_title("BOSTON PRICE PER SQUARE METER")# set the title text.set_subtitle("YEARS 2006 TO 2010 | FUNDA.COM")# set the subtitle text.color_by("Neighborhood")# color the chart by the neighborhood (different categories).focus_on("CollgCr")# focus on a specific category (other will be grayed out).set_figsize(8,4)# set the figure size.set_yticks(np.arange(1000,1800,200))# set the spacing of the y axis labels.set_xticks(np.arange(2006,2011))# set the spacing of the x axis labels.show()# SHOW!!! the graph is ready!)Currently there are 4 predifined styles: base, vox, mkbhd, and innocent.But more are coming soon!🐜   Found a bug? Missing a specific feature?Feel free tofile a new issue📫&nbsp with a respective title and description issue on thepltflowrepository:ismaelcv.📘  Licensepltflowis released under the GNU Lesser General Public License (LGPL) license. All accompanying documentation and manual are released under theCreative Commons BY-SA 4.0 license.
Package: pltfront
pltfront - a simple matplotlib frontendpltfrontis a bare-bones Python plotting package, which provides an easy interface formatplotliband removes some complexity from repetitive plotting tasks.Quick startLet's plot the exponential function in [0, 1]frompltfront.plotimportPlotimportnumpyasnp# Generate the data setx=np.linspace(0.,1.)y=np.exp(x)# Plotlabel="$e^x$"plotting=Plot()plotting.plot(x,y,kind='line',label=label,legend=True,title=r'$f(x)=e^x$',show=True)For multiple superimposed plots, a list of lists is all it takesxs=[xforiinrange(2)]ys=[np.exp(x),np.exp(2*x)]labels=["$e^x$","$e^{2x}$"]kinds=['line','scatter']_=plotting.plot(xs,ys,label=labels,kind=kinds,legend=True,show=True)FeaturesSimple interface formatplotlibplotting functionsUser-specified plotting functions can be used (as long as they are callable!)Multiple plots can be superimposedRequirementsmatplotlib >= 3.8.0numpy >= 1.26.0cryptography >= 42.0.2DocumentationCheck out thetutorialfor more examples and thepublic APIfor more details.ContributionsContributions are welcome! Please follow theguidelinesavailable in the repository.InstallationFrom the Python Package Indexpip install pltfrontFrom the code repositorygit clone https://framagit.org/codutils/pltfront.git
cd pltfront
make installAuthorIacopo Ricci
Package: pltgui
pltguiAuthor: Dr Jie Zheng & Dr Lin-qiao Jiang
v0.1 2022
v0.2 2023RIntroductionWorking with a GUI, or adding interaction in plotting, will help a lot in data analysis.
However, the common GUI of Python is OS-dependent,
while manually adding interactive codes is too complex.
A pseudo-GUI tool is introduced in this work.
It will help to add buttons/checkers in the graph and assign callback functions to them.
The remaining problem is that the documents in this package are in Chinese and will be in English in the next version.
This program is published to the PyPI, and can be installed by 'pip install pltgui'.This package provides a button class and a button controller  nager class.
A button will be drawn on a specified position with a specified size, text and color.
A callback function as the click event handler can be bind to the button.
The button controller will help to adjust the axes, and control the message loop,
call the event handler when the button is clicked.Since we are using the native matplotlib plotting, it is OS-independent.
Programs using this package has same behaviour on macOS, Linux, and Windows.一个用matplotlib画按钮到图形界面，用于在科学图像绘制之外额外增加互动操作功能。
目前很简单，只提供了按钮，以及按钮的颜色等（可以当复选框用）。由于使用matplotlib，而不是专门的图形界面，因此可以在任何具有交互能力的操作系统上使用，
经过实测，在macOS，Linux，Windows上均可以很好地实现互动操作。Sample 范例Seesample.pyandsample-calc.py.见sample.py与sample-calc.py。
Package: pl-tmobile-sms-gateway
Wrapper for T-Mobile Poland SMS GatewayThis python package is a simple wrapper for T-Mobile (Poland only) SMS endpoint. The endpoint only provides facility to send test messages.T-Mobile provides users with two SMS sending endpoints: one is completely free (so calledSponsored) and a paid one with tokens (so calledOmnix). For details on T-Mobile's API please see thislink.
To use both gateways you need to register an account with T-Mobile.:warning:Note: Both gateways (the paid one and the one free of charge) are only available over http.Do not use this packageif you are concerned with leaking your credentials or the text message.frompl_tmobile_sms_gatewayimportSponsoredsponsored=Sponsored(login="my login",password="my secret password")sponsored.send("recipient's phone number","Using free of charge gateway")
Package: plt-ocr
Plate OCRA Mobilenet based, single IL car plate OCRInstallationCurrently plt-ocr is intended to use on CPU machine (GPU support is coming soon).
To install plt-ocr on a CPU run:pip3 install plt-ocr
pip3 install torch --index-url https://download.pytorch.org/whl/cpuUsageCommand lineIf you have a car plate image namedplate.jpgYou can runpltocr car.jpgand get{"prediction":"70660202","confidence":0.9978833775525012}PythonimportjsonfromPILimportImagefromplt_ocr.modelimportOCRimg=Image.open(plate_path)model=OCR()result=model(img)print(json.dumps(result.__dict__))RelatedDetectyis a Mobilenet based single car plate detection model that works well with plt-ocr.cars.vardale.orgis a website that uses both detecty and plt-ocr.
Package: plt-pack
PltPackBind your matplotlib functions with dataPltPack is a lightweight packaging tool for storing and exchanging data & code bound in a single file. It is mainly
created to accelerate scientific work and is focused on supporting matplotlib package for exchanging scientific figures.
Integrated with Jupyter Notebook.Install from PyPi with pip:pip install plt_packUsagePltPack saves minimal atomic part of your code and the data required to run a function and plot a figure:argumentsimportsfunction codecalled sub-functionsglobal variablesused module versionsnon-default matplotlib rcParamsThe most convenient way to use PltPack is to define a project with a
folder where all the .plt files will be saved, and register the entry functions
you would like to save. The alternative is to decorate a function with 'auto_save'
method to save it with new arguments on every call.Below is a self-explanatory example:# importsfrommatplotlibimportpyplotaspltimportnumpyasnpfromplt_packimportPltProject# define your project with directory for figuresplt_project=PltProject('FiguresDir')# define your functions# decorate them with 'register' or 'auto_save' method@plt_project.registerdefplot(x,y_list,label_list):fory,labelinzip(y_list,label_list):plot_line(x,y,label)add_legend()@plt_project.auto_save(rewrite=False,datefmt='%H-%M-%S')defplot_hist(y,bins:int=10):plt.hist(y,bins=bins)# some util functions & globals defined somewhere in your# file or Jupyter NotebookCOLOR='red'defplot_line(x,y,label:str=None,ls:str='--'):plt.plot(x,y,ls=ls,lw=2,c=COLOR,label=label)defadd_legend():plt.legend()# Registered function can be saved with context parameters:x=np.arange(10)y_list=[np.arange(10)*iforiinrange(5)]label_list=[f'Curve #{i}'foriinrange(5)]withplt_project(rewrite=True,name='my_function'):plot(x,y_list,label_list)# function will be executed but also saved to my_function.plt# file to your project folder:assertplt_project.list_files()==['my_function']Now you can upload this file later (non necessarily on the same machine)
and reproduce the result with one call.fromplt_packimportread_plt_filefile=read_plt_file('my_function')# or using plt_project:# file = plt_project.load_file('path/to/file')file.exec()# that will re-run the functionprint(file.get_code_str())# that will show all the code to reproduce itExpected output:# Imports:importmatplotlib.pyplotasplt# Global variables:COLOR='red'# Main function:defplot(x,y_list,label_list):fory,labelinzip(y_list,label_list):plot_line(x,y,label)add_legend()# Sub-functions:defadd_legend():plt.legend()defplot_line(x,y,label:str=None,ls:str='--'):plt.plot(x,y,ls=ls,lw=2,c=COLOR,label=label)LICENSEMIT
Package: pltpublish
pltpublishUtility package that takes care of configuring Matplotlib for publication-ready figures!Easy to useBeforeAfter>importpltpublishaspub>pub.setup()# your plot code                                  > # your plot codeplt.savefig("my_fig.eps")>pub.save_fig("my_fig.eps")WithoutpltpublishWithpltpublishAll Featuressetupcalls allsetup_*methodssetup_colorblindconfigures matplotlib to use a colorblind palettesetup_latex_fontsconfigures matplotlib to use LaTeX fontssave_figacts likepyplot.save_figbut guarantees a minimum dpi, that the grid is on and removes outer white spaceextract_legend_as_figureextracts the legend of your figure and plots it on another new figurelayout_for_subplotsfinds automatically a good layout given the number of plots you have to plot on the same figure
Package: pltRDF
pltRDFRadial Distribution Function (RDF)pltRDF is a Python package to plot RDF by reading a GSD file.If your input is a trajectory, then it will consider only last frame.ContributorSumitava Kundu,IACS, Kolkata.InstallationPrerequisitespython3 or higherscikit-buildfreud-v2.0.0 or highertbbandtbb-develUsing PyPIUse the package managerpipto install pltRDF.
You must install tbb and tbb-devel separately, though wheels for tbb and tbb-devel exist onPyPifor specific operating systems.
For example, on ubuntu, you may use the following command.sudoaptinstalllibtbb-devNow you are ready to use pippipinstallpltRDFUsing source codegitclonehttps://github.com/sumitavakundu007/pltRDF.git
tar-xvfpltRDF-X.X.XcdpltRDF-X.X.X
python3setup.pyinstall--userUsageimportpltRDFpltRDF.rdf("input_file.gsd","output_file.pdf")# a PDF file for RDFIt will ask for few inputs to calculate RDF like number of bins (bins), maximum cutoff distance (r_max)ContributingPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.Please make sure to update tests as appropriate.License[MIT](https://choosealicense.com/licenses/mit/
Package: plt-wrapper
pltA matplotib.pyplot wrapper for gpu arrays (cupy, pytorch, etc.) without any of the.get/.detach/.cpuabracadabra.Installation and usagepltcan be installed with PyPI:pip install pltTo useplt: simply import the modulefrompltimportpltand proceed withpltas if you had just gone through the now-classic importimport matplotlib.pyplot as plt. For example:frompltimportpltimportcupyascparr=cp.arange(10)plt.plot(arr)plt.show()The wrapper will automatically detect the type of the arrays in your pyplot call (both args and kwargs) and cast them to cpu on numpy.
To test with numpy or pytorch here you would simply changeimport X as cpand run the exact same lines of code.
Support for cupy and pytorch at the moment, but contributions welcome.OtherTo wrap any other library or matplotlib module "lib" with to-cpu casting do:frompltimportplt_wrapperimportmoduleaslibplt=plt_wrapper(lib)To add support to other libraries you are very welcome to contribute here or proceed it for yourself only:frompltimportpltplt.add_support("cupy",[lambdaarray_lib:array_lib._core.core.ndarray,\lambdaarray_type,x:getattr(array_type,"get")(x)])where here we would have added cupy support if it did not already exist.from plt import pltimports an already-initialized classplt_wrapper(matplotlib.pyplot).plt_wrapperlooks for the cupy and pytorch libraries in your env to do the setup.
Alternatively,plt_wrapper_by_arraytype, and its initialized equivalentplt_arr, achieve the same wrapping results but fetching directly by array type in the.__module__:frompltimportplt_arraspltplt.add_support("cupy._core.core",\lambdaarray_type,x:getattr(array_type,"get")(x))
Package: pluck
pluck: Quickly pluck “fields” from a list of valuespluck is the simplest way of plucking “fields” from an iterable of values.
“Fields” are eitheritem.fieldoritem[field].  Pluck tries both,
in that order.  If nothing is found, and no default value is specified, it
throws an exception.UsageThe package consists of one module consisting of two functions:from pluck import pluck, ipluckipluckis just the iterable version ofpluck.  Use it like this:pluck(iterable, key)or:pluck(iterable, *keys)ExamplesA simple example first.  Say you have a list of datetimes:>>> from pluck import pluck
>>> dates = [
...     datetime(2012, 10, 22, 12, 00),
...     datetime(2012, 10, 22, 15, 14),
...     datetime(2012, 10, 22, 21, 44),
... ]
>>> pluck(dates, 'day')
[22, 22, 22]
>>> pluck(dates, 'hour')
[12, 15, 21]It also works on dictionary-like access (__getitem__):>>> objects = [
...      {'id': 282, 'name': 'Alice', 'age': 30, 'sex': 'female'},
...      {'id': 217, 'name': 'Bob', 'age': 56},
...      {'id': 328, 'name': 'Charlie', 'age': 56, 'sex': 'male'},
... ]
>>> pluck(objects, 'name')
['Alice', 'Bob', 'Charlie']
>>> pluck(objects, 'age')
[30, 56, 56]You can also combine these into a single pluck:>>> pluck(objects, 'name', 'age')
[('Alice', 30), ('Bob', 56), ('Charlie', 56)]DefaultsYou can specify default values, too.  By default,pluckwill throw an
exception when a “field” does not exist:>>> pluck(objects, 'sex')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pluck.py", line 104, in pluck
      return list(ipluck(iterable, *keys, **kwargs))
  File "pluck.py", line 49, in getter
      raise ValueError('Item %r has no attr or key for %r' % (item, key))
  ValueError: Item {'age': 56, 'id': 217, 'name': 'Bob'} has no attr or key for 'sex'To instead fill these places with a default value, use this:>>> pluck(objects, 'sex', default='unknown')
['female', 'unknown', 'male']When you specify multiple keys, you need to use thedefaults(plural!)
keyword argument instead:>>> pluck(objects, 'name', 'sex', defaults={'sex': 'unknown'})
[('Alice', 'female'), ('Bob', 'unknown'), ('Charlie', 'male')]Iterator, rather?Useipluckif you’d rather wanna have an iterator:>>> from pluck import ipluck
>>> ipluck(large_stream_of_items, 'name')
<itertools.imap object at 0x10c7515d0>pluckis equivalent tolist(ipluck(...)).History0.2 (2012-10-22)Add Python 3 compatibilityImprove documentation0.1 (2012-10-22)Initial release.
Package: plucker
pluckerValidate and extract JSON-sourced data into type-safe dataclasseswutTired of relying on vendor-provided, untyped Python libraries to interface with external APIs?Want to just make a few simple HTTP requests without the weight of extra dependencies?Do you only use a small subset of the data you get from external sources, picking out five fields when you are given thirty?Are you more than slightly worried that the API might change under you and you wouldn't know?Want to avoid just reaching into dictionaries to get the data you want?Do you want to parse the JSON you get into something type-safe so that mypy will complain when you do wrong things?Is writing fakes a bit too heavyweight for the APIs you're calling?  Would producing an error on unexpected input work OK for now?Enterplucker.pluckeris designed to validate, map and reduce regularly structured data intodataclasses.  That data would typically be JSON from APIs but could be anything that mostly consists of Python dicts and lists when parsed.pluckerwill either give you type-verified data, or it will fail with helpful error messages:Data not in expected format; expected fred to be 'list' but it was 'dict':
.fred[].v
 ^^^^Just pick the data you want usingjq-style paths, map it so that it's the right type if you need to, and you have well-typed validated data to feed into the rest of your system.Installation (soon...)pipinstallpluckerExamplefromtypingimportListfromdataclassesimportdataclassfromenumimportEnum,autofromdatetimeimportdatefrompluckerimportpluck,PathclassStatus(Enum):"""A cintact's status."""CURRENT=auto()EXPIRED=auto()@dataclassclassContact:"""A contact record."""name:stremail:str@dataclassclassStruct:"""The typed dataclass we want our data collected into."""date:dateid:intstate:Statusaffected_records:List[int]contacts:List[Contact]TO_STATUS={"CUR":Status.CURRENT,"EXP":Status.EXPIRED}input_={"date":"2021-01-01","id":"1242","payload":{"from":"CURRENT","who":[{"name":"DM","id":1,"email":"dangermouse@example.com"},{"name":"Stiletto","id":23,"email":"baroni@example.com"},]}}plucked=pluck(input_,Struct,date=Path(".date"),id=Path(".id").map(int),state=Path(".payload.from").map(TO_STATUS),affected_records=Path(".payload.who[].id"),people=Path(".payload.who[]").into(Contact,name=Path(".name"),email=Path(".email"),),)expected=Struct(date=date(2021,1,1),id=1242,state=Status.CURRENT,affected_records=[1,23],contacts=[Contact("DM","dangermouse@example.com"),Contact("Stiletto","baroni@example.com")])assertplucked==expected# ^ it's TruePrior artdataclasses_json -> require the same structure between JSON and serialization, which means you have to specify an intermediate structureDRF serializers -> heavyweight and not type safe, destructure into dictionariesElm's JSON decoders -> this design isn't really based on anything in there but ever since using them I wanted similar functionality in Pythonjq, an amazing commandline tool for querying JSON dataParse, don't validateElm's error messagesLicenseMITCreditsA bunch of the tooling was taken fromwemake-python-packagebut then heavily modified.
Package: pluckit
pluckitExtract values from collection items.Installpip install pluckitUsagefrom pluckit import pluck

data = [
  {'x': 1, 'y': 2},
  {'x': 2, 'y': 4},
  {'x': 3, 'y': 6},
]
pluck(data, 'x')
> [1, 2, 3]


# supports arbitrarily deep plucks and function calls
people = [
    { 'name': 'Daniel', 'friends': [ 'Josh', 'Mel' ] },
    { 'name': 'Mel', 'friends': [ 'Daniel', 'Suzy' ] },
]
pluck(people, 'friends[-1].lower[:3]')
> [ 'mel', 'suz' ]



# use Pluckables for built-in functionality

from pluckit.pluckable import PluckableList

PluckableList([
  {'x': 1, 'y': 2},
  {'x': 2, 'y': 4},
  {'x': 3, 'y': 6},
]).pluck('x')
> [1, 2, 3]


# use the Pluckable mixin to build your own

from pluckit import Pluckable
class MyDict(dict, Pluckable): pass

MyDict({
  'home' : {'x' : 1, 'y' : 2},
  'work' : {'x' : 3, 'y' : 6},
}).pluck('x')
> {'home' : 1, 'work' : 3}
Package: pluckr
Pluck columns from csv files in the commandline. Like cut or awk, but without
choking on delimiter escaping.installpip install pluckr. Done.usageGrab columns 2 and 3 from stdin (-fis one-indexed):pluckr -f 2,3 < sample1.csvOr straight from a file:pluckr -f 2,1 sample1.csvYour requested order is retained:pluckr -f 1,2 sample1.csv != pluckr -f 2,1 sample1.csvYou can use Python’s negative indices… grab the first and last cols:pluckr -f 1,-1 sample1.csvAnd you can mix in ranges for column selection:pluckr -f 2,4-6,9 sample1.csvCan’t be sure which columns exist or what their indices are?pluckr –names sample1.csvFields that don’t exist (e.g.-f11111) will be ignored.Preprended line numbers can be helpful:cat sample1.csv | pluckr –line-numbersSkip header row(s):cat sample1.csv | pluckr -s1Grab all but the 2nd column (drop columns instead of selecting them):pluckr -f 1 -i < sample2.csvRead (and write) various delimiters:pluckr -d, –out-delimiter=| < with-commas.csv > with-pipes.csvNote that passing tabs as arguments can be awkward; in a pinch, use:pluckr -d $’t’helpVia–help:usage: pluckr [-h] [-f FIELDS] [-i] [-d DELIMITER] [-q QUOTECHAR] [-s SKIP][-l] [-n]
[infile]Grab columns from csv input.http://github.com/philadams/pluckrpositional arguments:infile                input file (.csv)optional arguments:-h,--helpshow this help message and exit-fFIELDSordered list of columns to retain; one-indexed-i,--inverseinvert column retention: drop those in -f-dDELIMITER,--delimiterDELIMITERfield delimiter when reading infile-qQUOTECHAR,--quotecharQUOTECHARfield quotechar when reading infile-sSKIP,--skipSKIPnumber of rows to skip-l,--line-numbersprepend line numbers to output-n,--namesprint column names; assumes one header rowtestsThis project uses [roundup](https://github.com/bmizerany/roundup) for testing.
Run tests withmake test.futureallow -f to take columns by name when there’s a header row?implement –out-x for output delimiters etc.json output? or, contribute a cli to kennethreitz/tablibadd out delimiter supportadd out quotechar support
Package: plucky
plucky.pluckablehappily wraps any Python object and allows
for chained soft plucking with attribute- and item- getters (e.g..attr,["key"],[idx],[::2], or a combination:["key1", "key2"],
and[0, 3:7,::-1]; even:["length", 0:5, 7]).plucky.pluckwill allow you to plucksame as withpluckable(regarding the plucking operations), but accepting a string selector
instead of a Python expression.plucky.plucksenables you to safely extract several-levels deep values by
using a concise string selector comprised of dictionary-like keys and list-like
indices/slices. Stands forpluck simplified, since it supports only a subset ofplucksyntax. It’s simpler and a more efficient.plucky.mergefacilitates recursive merging of two data structures, reducing
leaf values with the provided binary operator.Installationpluckyis available as azero-dependencyPython package. Install with:$ pip install pluckyUsagefrompluckyimportpluck,plucks,pluckable,mergepluckable(obj).users[2:5,10:15].name["first","middle"].valuepluck(obj,'users[2:5, 10:15].name["first", "middle"]')plucks(obj,'users.2:5.name.first')merge({"x":1,"y":0},{"x":2})Examplesobj={'users':[{'uid':1234,'name':{'first':'John','last':'Smith',}},{'uid':2345,'name':{'last':'Bono'}},{'uid':3456}]}plucks(obj,'users.1.name')# -> {'last': 'Bono'}plucks(obj,'users.name.last')# -> ['Smith', 'Bono']plucks(obj,'users.*.name.first')# -> ['John']pluckable(obj).users.name.first.value# -> ['John']pluckable(obj).users.uid[0,2,1].value# -> [1234, 3456, 2345]pluckable([datetime.datetime.now(),None,{'month':8}])[::2].month# -> [5, 8]pluckable(obj,skipmissing=False,default='Unnamed').users.name.first.value# -> ['John', 'Unnamed', 'Unnamed']More Examples! :)pluckable(obj).users[:,::-1].name.last.value# -> ['Smith', 'Bono', 'Bono', 'Smith']pluckable(obj).users[:,::-1].name.last[0,-1].value# -> ['Smith', 'Smith']pluck(obj,'users[:, ::-1].name.last[0, -1]')# -> ['Smith', 'Smith']plucks([1,{'val':2},3],'val')# -> [2]plucks([1,{'val':[1,2,3]},3],'1.val.-1')# -> 3merge({"x":1,"y":0},{"x":2})# -> {"x": 3, "y": 0}merge({"a":[1,2],"b":[1,2]},{"a":[3,4],"b":[3]})# -> {"a": [4, 6], "b": [1, 2, 3]}
Package: plucky-ak47
How to USE?帮助命令:./run.sh <option>
OPTIONS:
    -b, build               Build package.
    -d, dist                Distribute package. (Source/Wheel)
    -u, upload              Upload package.(PYPA)
    -c, clean               Clean all temp files.
    -cpc, clean_pip_cache   Clean pip cache directory.Upload packagestep 1: 首先需要配置pip上传目的源, 添加文件~/.pypirc文件内容:[distutils]
index-servers=pypi

[pypi]
repository=https://upload.pypi.org/legacy/  # <your repo url>
username=<your username>
password=<your password>step 2: 然后执行upload命令,将package上传到目的源.命令:./run.sh upload