Saravanan666/pypi-org huggingface dataset:
Package: bdcctools
bdcc-toolsBDCC Tools: Biodiversity Data Cleaning and Curation Tools.bdcctoolstiene funciones útiles para la verificación geográfica y taxonómica de registros biológicos.InstalaciónConpip:pipinstallbdcctoolsConconda:Cómo contribuirClone este repositorio en su máquina:gitclonehttps://github.com/PEM-Humboldt/bdcc-tools.gitUbíquese en la raíz del proyecto:cdbdcc-toolsInstale el paquete en modo de desarrollo:pipinstall--editable.[dev,test]Se recomienda que la instalación del paquete en modo de desarrollo se haga en unentorno virtualpara no alterar otras instalaciones existentes de Python en el sistema.Teniendo en cuenta quebdcctoolstiene dependencias comofiona,gdalyrasterio, las cuales pueden necesitar pasos adicionales (ver1y2) a los anteriores para su instalación, se recomienda utilizar unentorno virtual decondapara instalarbdcctoolsen modo de desarrollo y evitar la instalación manual de algunas dependencias.Para crear el entorno virtual deconda, ubíquese en la raíz del proyecto y ejecute:condaenvcreate-fenvironment.ymlActive el entorno virtual recién creado:condaactivatebdcctools-devInstale el paquete en modo de desarrollo:pipinstall--editable.[dev,test]Ejecución de pruebas unitariasUbicado dentro del proyecto, ejecute:pytest tests/
Package: bdcraft-mod-packer
BDcraft-mod-packerThanks tondrplzandgoogle-drive-downloaderIntroA tool to download all mod patch texture packs fromBDcraft.netand pack them into one zip file.RequirementYou need to have fairy access to Google Drive, or some texture packs may not be downloaded.Installpipinstallbdcraft-mod-packerUsageRun the command below and wait it to finish.python-mbdcraft_mod_packerWhen finished, the combined texture pack will lay in theoutdirDefault Parameters--mc-version:1.12

--output:out

--resolution:128x
Package: bdd
IntroductionLibrary to convertBDDfeatures into Python unittest.TestCase classes. Run the
tests with your favorite test runner, like pytest, unittest or nose.
See the demo folder for an example.ExampleLet’s take a calculator as an example.
Create a plain text file called calculator.feature containing theBDD-style
feature description:Feature: Basic math operations
 Test addition

Scenario: add
 Given the value 10
 When adding 7
 Then the result is 17

Scenario: add a negative value
 Given the value 19
 When adding -11
 Then the result is 8This is the text you can discuss with the customer and agree on.
Next write a backing file called test_calculator.py containing the code to
run this feature:import os
from bdd import Environment
from calculator import Calculator

env = Environment()
env.context.calculator = Calculator()

@env.given('the value {:d}')
def step(context, value):
    context.calculator.value = value

@env.when('adding {:d}')
def step(context, value):
    context.calculator.add(value)

@env.then('the result is {:d}')
def step(context, value):
    assert context.calculator.value == value

def rel(p):
    this_dir = os.path.dirname(os.path.abspath(__file__))
    return os.path.join(this_dir, p)

CalculatorTestCase = env.load_feature_as_testcase('calculator.feature')Finally, write the actual production code to implement the calculator, in
a file called calculator.py:class Calculator:
    def __init__(self):
        self.value = 0

    def add(self, value):
        self.value += valueNow run the tests with, for example, pytest:$ python -m pytest test_calculator.py -v
=========== test session starts ===========================
platform linux -- Python 3.5.1, pytest-2.9.1
collected 2 items

test_calculator.py::CalculatorTestCase::test_scenario_0 <- bdd.py PASSED
test_calculator.py::CalculatorTestCase::test_scenario_1 <- bdd.py PASSEDReferencesA really good python bdd library isbehave.Changelog0.2Add tag support0.1 (Jun 2, 2016)Initial release
Package: bdd100k
BDD100K is a diverse driving dataset for heterogeneous multitask learning.Homepage|Paper|Doc|QuestionsWe construct BDD100K, the largest open driving video dataset with 100K videos
and 10 tasks to evaluate the exciting progress of image recognition algorithms
on autonomous driving. Each video has 40 seconds and a high resolution. The
dataset represents more than 1000 hours of driving experience with more than 100
million frames. The videos comes with GPU/IMU data for trajectory information.
The dataset possesses geographic, environmental, and weather diversity, which is
useful for training models that are less likely to be surprised by new
conditions. The dynamic outdoor scenes and complicated ego-vehicle motion make
the perception tasks even more challenging. The tasks on this dataset include
image tagging, lane detection, drivable area segmentation, road object
detection, semantic segmentation, instance segmentation, multi-object detection
tracking, multi-object segmentation tracking, domain adaptation, and imitation
learning. This repo contains the toolkit and resources for usingBDD100K
data. To cite the dataset in your paper,@InProceedings{bdd100k,
    author = {Yu, Fisher and Chen, Haofeng and Wang, Xin and Xian, Wenqi and Chen,
              Yingying and Liu, Fangchen and Madhavan, Vashisht and Darrell, Trevor},
    title = {BDD100K: A Diverse Driving Dataset for Heterogeneous Multitask Learning},
    booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month = {June},
    year = {2020}
}
Package: bdd2dfa
bdd2dfaA simple python wrapper around Binary Decision Diagrams (BDDs) to interpret them
as Deterministic Finite Automata (DFAs).The package takes as input a BDD from theddpackageand returns a DFA from thedfapackage.Formally, the resultingDFAobjects are quasi-reduced BDDs (QDDs)
where all leaves self loop and the label of states is a tuple:(int, str | bool), where the first entry determines the number of inputs until this node is active and the second entry is the decision variable of the node or the BDD's truth assignment.Table of ContentsInstallationUsageInstallationIf you just need to usebdd2dfa, you can just run:$ pip install bdd2dfaFor developers, note that this project uses thepoetrypython package/dependency
management tool. Please familarize yourself with it and then
run:$ poetry installUsage# Create BDDfromddimportBDDmanager=BDD()manager.declare('x','y','z')x,y,z=map(manager.var,'xyz')bexpr=x&y&z# Convert to DFAfrombdd2dfaimportto_dfaqdd=to_dfa(bexpr)assertlen(qdd.states())==7# End at leaf node.assertqdd.label([1,1,1])==(0,True)assertqdd.label([0,1,1])==(0,False)# End at Non-leaf node.assertqdd.label([1,1])==(0,'z')assertqdd.label([0,1])==(1,False)# leaf nodes are self loops.assertqdd.label([1,1,1,1])==(0,True)assertqdd.label([1,1,1,1,1])==(0,True)Each state of the resultingDFAobject has three attribute:node: A reference to the internal BDD node given bydd.parity:ddsupports Edge NegatedBDDs, where some edges point
to a Boolean function that is the negation of the Boolean function
the node would point to in a standardBDD. Parity value determines
whether or not the nodedebt: Number of inputs needed before this node can
transition. Required sinceBDDedges can skip over irrelevant
decisions.For example,assertqdd.start.parityisTrueassertqdd.start.debt==0assertqdd.start.node.var=='x'BDD vs QDDto_dfaalso supports exporting aBDDrather than aQDD. This is done
by toggling theqddflag.bdd=to_dfa(bexpr,qdd=False)TheDFAuses a similar state as theQDDcase, but does not have adebtattribute. Useful when one just wants to walk theBDD.noteThe labeling alphabet also only returns the decision variable/truth assignment.If thedfapackage was installed with thedrawoption, we can
visualize the difference betweenqddandbddby exporting to a
graphvizdotfile.fromdfa.drawimportwrite_dotwrite_dot(qdd,"qdd.dot")write_dot(bdd,"bdd.dot")Compiling using thedotcommand yields the following forqdd.dotand the following forbdd.dot:
Package: bddcli
bddcliTest any command line interface in BDD manner.AboutA framework to easily test your command line interface in another(isolated)
process and gatherstdout,stderrandexit-statusof the process.Thanks tohttps://github.com/cheremnovfor the Windows support.InstallationOnlyPython >= 3.6is supported.pipinstallbddcliQuickstartArgumentsimportsysfrombddcliimportGiven,when,stdout,status,stderr,Application,givendeffoo():print(' '.join(sys.argv))return0app=Application('foo','mymodule:foo')withGiven(app,'bar'):assertstatus==0assertstdout=='foo bar\n'# Without any argumentwhen(given-'bar')assertstdout=='foo\n'# Pass multiple argumentswhen('bar baz')assertstdout=='foo bar baz\n'# Pass multiple arguments, another methodwhen(['bar','baz'])assertstdout=='foo bar baz\n'# Add an argumentwhen(given+'baz')assertstdout=='foo bar baz\n'Standard inputwithGiven(app,stdin='foo'):assert...# stdin is emptywhen(stdin='')assert...Standard output and errorfrombddcliimportstderr,stdoutassertstderr==...assertstdout==...Environment variablesimportosfrombddcliimportGiven,stdout,Application,when,givendeffoo():e=os.environ.copy()dele['PWD']print(' '.join(f'{k}:{v}'fork,vine.items()))app=Application('foo','mymodule:foo')withGiven(app,environ={'bar':'baz'}):assertstdout=='bar: baz\n'# Without any variablewhen(environ=given-'bar')assertstdout=='\n'# Add another variableswhen(environ=given+{'qux':'quux'})assertstdout=='bar: baz qux: quux\n'See tests for more examples.
Package: bddocs
## How to start ##To use simply do:>>> from bddocs import Documentation  # to retrieve bdd information
>>> from bddocs import PDF  # to get PDF output
>>> from bddocs import HTML  # to get it HTML output
>>> bdd = Document('example')  # pass the path of .feature documents
>>> PDF(bdd).output('document.pdf')  # retrieve BDD info in a PDF file
>>> HTML(bdd).output('document.html')  # retrieve BDD info in a HTML file
Package: bdd-tester
Test data files usingbehaviour-driven
developmenttests, in python.Wait, what?It’s a tool to runGherkintests (features) against (IATI) data – similar toCucumber(in Ruby) orBehave(in Python).Here’s a blog that nicely explains the idea.Installpipinstallbdd_testerRunbdd_tester--feature[Featurefile]--steps[Stepfile][Datafile]For more options, run:bdd_tester--helpUsing it programmaticallyfrombdd_testerimportBDDTestertester=BDDTester(step_definitions_filepath)feature=tester.load_feature(feature_filepath)result=feature.tests[0](*args,**kwargs)
Package: bdf2mcpack
BDF2MCPackBDF2MCPack is a CLI application to convert a BDF type font file to a resource
pack for Minecraft.The application requires Python 3.7 or above.InstallationWindows, Linux and MacOSUsepipto install the module.pipinstallbdf2mcpackMake sure that the executable file (bdf2mcpack.exeorbdf2mcpack) is
installed under a directory which is set in thePATHenvironment variable.UsageHelp Messageusage: bdf2mcpack [-h] [-o output] [--format FORMAT] [--description DESCRIPTION]
                  [--compresslevel {0,1,2,3,4,5,6,7,8,9}] [--range [RANGE ...]]
                  input

Creates a resource pack for Minecraftfrom a BDF type file.

positional arguments:
  input                 The filename of the BDF file to load

options:
  -h, --help            show this help message and exit
  -o output             The Filename of the resource pack to create (default:
                        pack.zip)
  --format FORMAT, -f FORMAT
                        The value to set as pack.pack_format in pack.mcmeta
                        (default: 18)
  --description DESCRIPTION, -d DESCRIPTION
                        The text to set as pack.description in pack.mcmeta
                        (default: "Generated by bdf2mcpack")
  --compresslevel {0,1,2,3,4,5,6,7,8,9}, -c {0,1,2,3,4,5,6,7,8,9}
                        The compression level used when writing the output file
                        (default: 6)
  --range [RANGE ...], -r [RANGE ...]
                        The Unicode codepoint range to use. Accepts decimal or
                        hexadecimal expressions of codepoints. Case insensitive.
                        e.g. 0-127 U+100000-U+10FFFFExampleThis example downloadsUnifontJapanese BDF Version, and creates a resource pack to replace ideographic
Chinese Characters with Japanese Kanji.curl-Ohttps://unifoundry.com/pub/unifont/unifont-15.1.04/font-builds/unifont_jp-15.1.04.bdf.gz
gunzipunifont_jp-15.1.04.bdf.gz
bdf2mcpackunifont_jp-15.1.04.bdf-okanji.zip-rU+4E00-U+9FFFUsed LibrariesbdfparserPillowtqdmLicenseThis program is distributed under Apache-2.0 license.
Package: bdf2ttf
bdf2ttfUtilities to turn bitmap fonts into outline "pixel" fonts, in TTF format.
Getting startedpip3 install bdf2ttfUsageTwo scripts are included:bdf2ttfConvert bitmap fonts into TTF format.bdf2ttf MyCoolFont.bdf --out MyCoolFont.ttfSeebdf2ttf --helpfor more details.yml2feaCreate an OpenType feature file from YAML shorthand syntax.yml2fea interesting_stuff.yml interesting_stuff.feaSee full documentation for more details.LicenseGNU General Public License version 3
Package: bdffont
BdfFontBdfFont is a library for manipulating.bdfformat fonts.InstallationpipinstallbdffontUsageLoadimportosimportshutilfrombdffontimportBdfFontfromexamplesimportassets_dir,build_dirdefmain():outputs_dir=os.path.join(build_dir,'load')ifos.path.exists(outputs_dir):shutil.rmtree(outputs_dir)os.makedirs(outputs_dir)font=BdfFont.load(os.path.join(assets_dir,'unifont','unifont-15.0.01.bdf'))print(f'name:{font.name}')print(f'size:{font.point_size}')print(f'ascent:{font.properties.font_ascent}')print(f'descent:{font.properties.font_descent}')forglyphinfont.get_glyphs():print(f'glyph:{glyph.name}-{glyph.code_point:04X}')font.save(os.path.join(outputs_dir,'unifont-15.0.01.bdf'),optimize_bitmap=True)if__name__=='__main__':main()CreateimportosimportshutilfrombdffontimportBdfFont,BdfGlyph,xlfdfromexamplesimportbuild_dirdefmain():outputs_dir=os.path.join(build_dir,'create')ifos.path.exists(outputs_dir):shutil.rmtree(outputs_dir)os.makedirs(outputs_dir)font=BdfFont(point_size=16,resolution_xy=(75,75),bounding_box_size=(16,16),bounding_box_offset=(0,-2),)font.add_glyph(BdfGlyph(name='A',code_point=ord('A'),scalable_width=(500,0),device_width=(8,0),bounding_box_size=(8,16),bounding_box_offset=(0,-2),bitmap=[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,1,1,0,0,0],[0,0,1,0,0,1,0,0],[0,0,1,0,0,1,0,0],[0,1,0,0,0,0,1,0],[0,1,0,0,0,0,1,0],[0,1,1,1,1,1,1,0],[0,1,0,0,0,0,1,0],[0,1,0,0,0,0,1,0],[0,1,0,0,0,0,1,0],[0,1,0,0,0,0,1,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],],))font.properties.foundry='Pixel Font Studio'font.properties.family_name='Demo Pixel'font.properties.add_style_name=xlfd.AddStyleName.SANS_SERIFfont.properties.pixel_size=16font.properties.point_size=160font.properties.spacing=xlfd.Spacing.PROPORTIONALfont.properties.average_width=round(sum([glyph.device_width_x*10forglyphinfont.code_point_to_glyph.values()])/font.get_glyphs_count())font.setup_missing_xlfd_properties()font.properties.default_char=-1font.properties.font_ascent=14font.properties.font_descent=2font.properties.x_height=5font.properties.cap_height=7font.properties.font_version='1.0.0'font.properties.copyright='Copyright (c) TakWolf'font.generate_xlfd_font_name()font.save(os.path.join(outputs_dir,'my-font.bdf'),optimize_bitmap=True)if__name__=='__main__':main()ReferencesX11 - Bitmap Distribution Format - Version 2.1Adobe - Glyph Bitmap Distribution Format (BDF) Specification - Version 2.2X Logical Font Description Conventions - X Consortium StandardArchWiki - X Logical Font DescriptionLicenseUnder theMIT license.
Package: bdfparse
.bdf to NumPyThis project takes a .bdf file and turns it into aNumPyArray with an intended use with LED matrix displays. MyLED Stock Tickeruses this package. A good list of .bdf files can be foundhereUsagefrombdfparseimportFontfont=Font('9x18.bdf')print(font.word('Hi'))Which outputs:[[000000000000000000][000000000000000000][000000000000000000][000000000000000000][001000001000011000][001000001000000000][001000001000000000][001000001000111000][001111111000001000][001000001000001000][001000001000001000][001000001000001000][001000001000001000][001000001000111110][000000000000000000][000000000000000000][000000000000000000][000000000000000000]]Or you can use matplotlib to make the output a bit prettier.importmatplotlib.pyplotaspltplt.imshow(font.word('Anson'))
Package: bdfparser
BDF Parser Python libraryBDF (Glyph Bitmap Distribution;Wikipedia;Spec) format bitmap font file parser library in Python. It hasFont,GlyphandBitmapclasses providing more than 30 chainable API methods of parsing BDF fonts, getting their meta information, rendering text in any writing direction, adding special effects and manipulating bitmap images. It works seamlessly withPIL / PillowandNumPy, and has detailed documentation / tutorials / API reference.BDF Parser TypeScript (JavaScript) library(documentation;GitHub page;npm page;npm i bdfparser) is a port ofBDF Parser Python library(documentation;GitHub page;PyPI page;pip install bdfparser). Both are written byTom Chenand under the MIT License.The BDF Parser TypeScript (JavaScript) library has aLive Demo & Editoryou can try.Below I'll show you some quick examples, but it is still strongly recommended you go toBDF Parser Python Library's official website to read the detailed documentation / tutorials / API reference.Install bdfparser Python library withpip:pipinstallbdfparserThen:frombdfparserimportFontfont=Font('tests/fonts/unifont-13.0.04.bdf')print(f"This font's global size is "f"{font.headers['fbbx']}x{font.headers['fbby']}(pixel), "f"it contains{len(font)}glyphs.")# =================================ac=font.glyph("a").draw().crop(6,8,1,2).concat(font.glyph("c").draw().crop(6,8,1,2)).shadow()ac_8x8=ac*8fromPILimportImageim_ac=Image.frombytes('RGBA',(ac_8x8.width(),ac_8x8.height()),ac_8x8.tobytes('RGBA'))im_ac.save("ac.png","PNG")# =================================hello=font.draw('Hello!',direction='rl').glow()print(hello)importnumpyimportmatplotlib.pyplotaspltnparr=numpy.array(hello.todata(2))plt.imshow(nparr,'Blues')plt.show()# =================================font_preview=font.drawall()im_ac=Image.frombytes('1',(font_preview.width(),font_preview.height()),font_preview.tobytes('1'))im_ac.save("font_preview.png","PNG")You probably understand what I did in these examples. Whether you do or not, go tobdfparser's documentation website.
Package: bdgd-tools
bdgd-toolsA set of tools to work with the BDGD (Base de Dados da Distribuidora) format, conversion to the DSS format (OpenDSS) and visualization.Free software: MIT licenseDocumentation:https://bdgd-tools.readthedocs.ioInstallationpip install bdgd-toolsFeaturesConversion of Electric Power Systems from BGDG format to DSS (Opendss), including.Improved memory management by loading the layers of the diskCircuit OpenDSS element creationLineCode OpenDSS element creationLoadShape OpenDSS element creationLine OpenDSS element creationTransformer OpenDSS element creationReactor OpenDSS element creationRegControl OpenDSS element creationLoad OpenDSS element creationHistory1.0.4(2023-04-29)Backend modifications to run properly auto publish and readthedocs.1.0.1(2023-04-22)Backend modifications to run properly auto publish and readthedocs.1.0.0(2023-03-22)Tested and running on python 3.9Clean architecture. Old models, classes and tests were removedMajor conversion using json file based was insertedNow we can read different bdgd versionsIn this version we can create the DSS elements:CircuitLineLinecode0.1.1(2022-09-19)Tested on windows platform0.1.0 (2022-09-19)First release on PyPIBase project
Package: bdgenomics.adam
ADAMADAM is a library and command line tool that enables the use ofApache
Sparkto parallelize genomic data analysis across
cluster/cloud computing environments. ADAM uses a set of schemas to describe
genomic sequences, reads, variants/genotypes, and features, and can be used
with data in legacy genomic file formats such as SAM/BAM/CRAM, BED/GFF3/GTF,
and VCF, as well as data stored in the columnarApache Parquetformat. On a single node, ADAM
provides competitive performance to optimized multi-threaded tools, while
enabling scale out to clusters with more than a thousand cores. ADAM's APIs
can be used from Scala, Java, Python, R, and SQL.DocumentationADAM's documentation is hosted atreadthedocs.Python RequirementsADAM depends on having PySpark installed.
Package: bdgenomics.mango.pileup
bdgenomics.mango.pileupbdgenomics.mango.pileup is a Jupyter widget that allows users to view genomic reads, variants and features in a python notebook.
bdgenomics.mango.pileup builds off ofpileup.js.Installationfrom pip:$ pip install bdgenomics.mango.pileup
$ jupyter nbextension enable --py --sys-prefix bdgenomics.mango.pileup  # can be skipped for notebook version 5.3 and abovefrom Source:For a development installation (requires npm >= 3.10.10 and node.js >= 6.11.0),$ git clone https://github.com/bdgenomics/mango
$ cd mango-viz
$ rm -r bdgenomics/mango/pileup/staticInstall bdgenomics.mango.pileup:$ pip install -e .
$ jupyter nbextension install --py --symlink --sys-prefix bdgenomics.mango.pileup
$ jupyter nbextension enable --py --sys-prefix bdgenomics.mango.pileupAfter pileup.js is installed once, you can just run the following for development:$ cd mango-viz
$ rm -r bdgenomics/mango/pileup/static/
$ pip install -e .
$ jupyter nbextension install --py --symlink --sys-prefix bdgenomics.mango.pileup
$ jupyter nbextension enable --py --sys-prefix bdgenomics.mango.pileupFor running examples:$ First run installation, explained above.
$ cd examples
$ jupyter notebookFor javascript development type checking:$ cd js
$ npm run test
Package: bdict
bdictA library allowing you to create an auto method-binding dict.Ever dreamed of writing clean dicts pointing keys to methods? Fear no more!Mainly used for event handlers, a binding dict consists of a mapping between
any events or keys, to their appropriate handler functions within a class.
Upon key lookup, the dict will bind the appropriate function to the instance
of the class.For an example:classServer:"""Typical server with a small mapping between event handlers and functions"""def__init__(self,name):self.name=namedefon_connect(self,remote_host):print(self.name,remote_host)defon_connect(self,remote_host):print(self.name,remote_host)handlers=BDict({NewConnectionEvent:on_connect,DisconnectonEvent:on_disconnect})>>>s=Server("myserver")>>>s.handlers[NewConnectionEvent]("1.2.3.4")myserver1.2.3.4As you can see, after accessing the handlers dict, and upon key lookup,
the dict bound the handler functions to the instance.BDict also works with classmethods in a clean and fashioned way:classMyClass:"""Typical server with a small mapping between event handlers and functions"""@classmethoddefclass_handle(cls):print(cls.__name__)handlers=BDict({"class_handle":class_handle})>>>MyClass.handlers["class_handle"]<boundmethodMyClass.class_handleof<class'__main__.MyClass'>>>>>MyClass.handlers["class_handle"]()MyClass>>>inst=MyClass()>>>inst.handlers["class_handle"]<boundmethodMyClass.class_handleof<class'__main__.MyClass'>>>>>inst.handlers["class_handle"]()MyClassUpon accessing the BDict through an instance, the BDict will create an internal instance data container on the BDict,
allowing you to modify it's dictionary and not affect other instances!>>>inst.handlers[123]=456>>>inst.handlers[123]456>>>inst2=MyClass()>>>inst2.handlers[123]Traceback(mostrecentcalllast):...KeyError:123Usage:BDict(dict_)dict_can be a dict or an iterable of (key, value) pairs and will be used to initializeBDict.The class BDict is used on must support weak referencing (the vast majority of custom objects do). If you use__slots__, you are able to do this by adding__weakref__to the slots.BDict.autobind(key, value)Allows adding an autobinding entry in the dict (regular additions will not autobind).keyis the key for access whilevalueis the function that will be autobound.
Package: bdilab-detect
bdilab_detect_xdu集成完新算法，打包、上传至Pypi。注册Pypi账号与setup.py处于同一目录python setup.py sdist bdist_wheel (在dist目录下生成一个tar.gz的源码包和一个.whl的Wheel包)python install twine (可选)twine upload dist/* (此步骤要求输入Pypi账号、密码)