Saravanan666/pypi-org huggingface dataset:
Package: bifrost-bsx-tools
Bifrost BSX ToolsExtract time series fromBifrostBSX files as pandas DataFrame.Compatible with Bifrost v6 "Sindri".Installationpipinstallbifrost_bsx_toolsUsageLoad a BSX file and get the settlement IDfrombifrost_bsx_toolsimportBsxArchivebsx=BsxArchive('scenario_a.bsx')bsx.get_settlement_id()Output:'MyFancySettlement'List the runs in the archiveOptinally, add the keyword argumentnamed_runs_only=Trueto get only runs with names.bsx.get_runs_metadata()Output:{'RUN:10601920-ac83-11ed-b4f1-0bee431b5633':{'startTime':5097600,'timeHorizon':7948800,'prefetchStep':900,'description':'run #1',# <- this is the name'timestamp':1676391443,'tags':[],'scenarioHash':'e2889fdc93ffba3511598322cc13252f3e768c4826f31c400e739ee62a66475d','complete':True,'persisted':True,'historic':False},...}Get the metadata of dynamics present in a runrun_id='RUN:10601920-ac83-11ed-b4f1-0bee431b5633'bsx.get_dynamics_metadata(run_id)Output:[{'id':'SUN-ALTITUDE:0f2bf2d1-ac6b-11ed-9a57-2d85e0d4252e','cardinality':1,'type':'number'},...]Does a timeseries exist for a dynamic?Checks if a file with the nameSUN-ALTITUDE_0f2bf2d1-ac6b-11ed-9a57-2d85e0d4252e.csvexists in the run folder. Bifrost sometimes does not create a file for every dynamic when it has not been stored in the InfluxDB.dynamic_id='SUN-ALTITUDE:0f2bf2d1-ac6b-11ed-9a57-2d85e0d4252e'bsx.dynamic_timeseries_exists(run_id,dynamic_id)Output:TrueGet the time series for a runReturns a pandas DataFrame with the time series for the dynamic.bsx.get_dynamic_timeseries(run_id,dynamic_id)Output:TimeTimestep01970-03-01 00:00:0050976001381970-03-01 00:15:0050985001371970-03-01 00:30:0050994001351970-03-01 00:45:0051003001341970-03-01 01:00:005101200132.........1970-05-31 23:00:00130428001091970-05-31 23:15:00130437001091970-05-31 23:30:00130446001091970-05-31 23:45:00130455001081970-06-01 00:00:0013046400108
Package: bifrost-common-py
bifrost-commonA library of commonly used functions to interact with BIFROST. Useful for module developers.Installationpip install bifrost-common-pyComponentsLogA module to print nice logging information to the console and, optionally, to files.from bifrost_common_py.Log import Log

log = Log('myComponent', 'myApplication', options={'maxLogFileSize':1e4, 'enableLogFiles':True})

log.write(`Abandon ship`, Log.WARNING)
log.write(`Run like hell`, Log.INFO)Log levels areDEBUG,INFO,WARNING,ERROR,FAILUREAllowedoptionsare:enableLogFiles(default:false): log to files as well as the consolelogDir(default:log): the log file directory (will be created as necessary)maxLogFileSize(default:0): maximum byte size of the log files, after which a new file will be started, default =0never rollovermaxArchiveSize(default: 5): maximum number of log files to keeptimeSome useful operations involving time, mostly for formattingLogoutput.idOfRefResolve the ID contained in an object. If no 'id' field is found in the
object pointed to withref, the last part of the reference is returned instead.from bifrost_common_py.idOfRef import idOfRef

print(idOfRef({ 'A': { 'id': '1' }}, '/A')) // '1'tokensAn object collecting string tokens commonly used in the BIFROST state.import bifrost_common_py.tokens as tokens

print(tokens.tkId) // "id"selectSelectors returning fully-qualified JSON paths into the BIFROST state.import bifrost_common_py.pathSelectors as select

print(select.meta())                      # "/meta"
print(select.dynamicId('DYNAMIC-1'))      # "/dynamics/byId/DYNAMIC-1"
print(select.eventParentRef('EVENT-1'))   # "/events/byId/EVENT-1/parentRef"safepointerA wrapper that allows to specify default values if paths can not be resolved. This is best used in conjunction withselectand a copy of the BIFROST state.APIimport bifrost_common_py.safepointer.has(obj, path)Determine whether the fully-qualified JSON pointerpathpoints to something inobj.safepointer.has({ 'A': { 'B': 1} }, '/A/B') # true
safepointer.has({ 'A': { 'B': 1} }, '/A/C') # false.get(obj, path, def = null)Resolvepathagainstobj. If the path does not exist,defis returned instead.safepointer.get({ 'A': { 'B': 1} }, '/A/B', 0)  # 1
safepointer.get({ 'A': { 'B': 1} }, '/A/C', 0)  # 0

import bifrost_common_py.pathSelectors as select

safepointer.get(state, select.meta(), {}) // { id: ... }SelectFromA declarative state selection library. Use this to select elements from the BIFROST state or from module subscription data.from bifrost_common_py.SelectFrom import SelectFrom

    SelectFrom(state).allDynamics().ofType('VOLTAGE-3P').asValueMap()

    SelectFrom(subs).allEntries().ofType('CLIMATE-MODEL').asValueList()

    SelectFrom(subs, state).allEntries().withParentOfType('WEATHER').asValueMap()
Package: bifrost-py
Bifrostimportant: Work-In-Progress. No production software.TOCInstallInstall form PIPInstall from SourcesUsageCreate WalletTransfer ETHTransfer ERC20NoteInstallInstall from PyPI# Virtualenv
(pyenv)$ pip install bifrost

# Main Python shell
$ sudo -H pip install bifrostInstall from sources# Ubuntu 18.04+# Required packagessudoaptinstall-ypython3-devgitvirtualenv# Create and activate virtualenv$virtualenv-ppython3pyenv(pyenv)$sourcepyenv/bin/activate# clone Repo(pyenv)$gitclonehttps://gitlab.com/dtecdeal/lab/bifrost/path/to/destination/folder(pyenv)$cd/path/to/destination/folder/Python(pyenv)$pythonsetup.pyinstallUsageCreate walletimportosfromweb3importWeb3frombifrostimportBifrostSIGNER_PK=os.environ.get('SIGNER_PK',"{default-signer-pk}")FACTORY_ADDRESS=os.environ.get('FACTORY_ADDRESS',"{default-factory-address}")RPC_URL=os.environ.get('RPC_URL',"{default-RPC-URL}")BIFROST_FACTORY=os.environ.get('BIFROST_FACTORY',"{bifrost-factory}")w3Provider=Web3.HTTPProvider(RPC_URL)w3=Web3(w3Provider)signer_account=w3.eth.account.privateKeyToAccount(SIGNER_PK)bifrost=Bifrost(BIFROST_FACTORY,signer_account,w3Provider)address_salt=1address=bifrost.getAddress(address_salt)address_is_deployed=bifrost.isDeployed(address_salt)print('''Signer:%sSalt:%sAddress:%sIsDeployed:%s'''%(signer_account.address,address_salt,address,address_is_deployed))TransferETHimportosfromweb3importWeb3frombifrostimportBifrostSIGNER_PK=os.environ.get('SIGNER_PK',"{default-signer-pk}")FACTORY_ADDRESS=os.environ.get('FACTORY_ADDRESS',"{default-factory-address}")RPC_URL=os.environ.get('RPC_URL',"{default-RPC-URL}")BIFROST_FACTORY=os.environ.get('BIFROST_FACTORY',"{bifrost-factory}")w3Provider=Web3.HTTPProvider(RPC_URL)w3=Web3(w3Provider)signer_account=w3.eth.account.privateKeyToAccount(SIGNER_PK)bifrost=Bifrost(BIFROST_FACTORY,signer_account,w3Provider)address_salt=1amount=int(.1*10**18)# Transfer ETH# address should have more than .1 (amount) ETHtx=bifrost.makeCall(address_salt,signer_account.address,amount)print('ETH transfer: ',tx.hex())w3.eth.waitForTransactionReceipt(tx)Transfer ERC20importosimportjsonfromweb3importWeb3frombifrostimportBifrostSIGNER_PK=os.environ.get('SIGNER_PK',"{default-signer-pk}")FACTORY_ADDRESS=os.environ.get('FACTORY_ADDRESS',"{default-factory-address}")RPC_URL=os.environ.get('RPC_URL',"{default-RPC-URL}")BIFROST_FACTORY=os.environ.get('BIFROST_FACTORY',"{bifrost-factory}")ERC20_ADDRESS=os.environ.get('ERC20_ADDRESS','{default-ERC20-address}')w3Provider=Web3.HTTPProvider(RPC_URL)w3=Web3(w3Provider)signer_account=w3.eth.account.privateKeyToAccount(SIGNER_PK)bifrost=Bifrost(BIFROST_FACTORY,signer_account,w3Provider)address_salt=1amount=int(.1*10**18)# Transfer ERC20# address should have more than .1 (amount) ERC20ERC20_abi=json.load(open('path/to/abi/IERC20.json','r'))ERC20=w3.eth.contract(abi=ERC20_abi)call=ERC20.encodeABI('transfer',args=(signer_account.address,amount))tx=bifrost.makeCall(address_salt,ERC20_ADDRESS,0,call)print('ERC20 transfer: ',tx.hex())NoteFollowing error{'code': -32000, 'message': 'gas required exceeds allowance (7447619) or always failing transaction'}Mostly related withalways failing transactionMade it with ❤ byDTecDeal
Package: bifrost-tracing
Bifrost TracingBifrost Tracing traces codes used in a notebookFree software: BSD licenseDocumentation:https://bifrost-tracing.readthedocs.io.FeaturesTODOCreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.History0.1.0 (2021-06-29)First release on PyPI.
Package: bifu
B.I.F.U.DescriptionB.I.F.U.was created to help me remember to do some steps before committing to the repository.Yeah... probably there are many others tools which can do it for you instead of this one ( more-less, i.e.pre-commit) so maybe it's worth to try "pro" solution :)B.I.F.U.will let you (only):automamically/manually run your defined commands  which should be executed before commiting or pushing to git repository (using git hooks)secure selected branches before commiting (master, main or some productions or "closed" once)[TODO] rebase all new commits to one before pushing to remote repository[TODO] use it as a quick-runner (select some of all tasks to run instead of writing long commands with parameters by hand i.e. pytest, flake, mypy etc)[TODO] force installing pre-commits in developer repository by executing command in python test script/library etc.B.I.F.Udoesn't install libraries or additional software in your enviroment.Instead of that it is using your existing enviroment, so first you need to source your python virtual enviroment and then this tool will work.Plus sides: instant execution and space saving.B.I.F.Uis short of"BeforeIF_ _ kUp".VersioningB.I.F.Uis versioned usingCalendar Versioningsystem:Calendar Versioning schemas:orYY - Short year - 6, 16, 106
MM - Short month - 1, 2 ... 11, 12
DD - Short day - 1, 2 ... 30, 31
Micro - Patch (in case when more than one package is released in one day)InstalationTo installB.I.F.U.go to your repository and run:pip install bifuInitiationTo initiate default config file use command:$bifu--initThis command will downloadB.I.F.U.configuration file.bifu.ymlto current directory.You can change this file as you like and test tasks from downloaded/changed file using next commands.Remember: If you wish to test tasks from downloaded file you need to install requirements from test section (flake8, pytest, mypy etc).pre-commit, pre-push installation$bifu--installpre-commit
$bifu--installpre-pushRunning all jobs$bifu--runpre-commit
$bifu-rpre-push
$bifu-rpre-commit-n0Running job number X$bifu--runpre-commit--number1$bifu-rpre-push-n3pre-commit, pre-push uninstallation$bifu--uninstallpre-commit
$bifu--uninstallpre-pushRequirementsTo runB.I.F.U.you need to install python in version minimum 3.7 and additional libraries:PyYAML="^6.0"types-PyYAML='^6.0.3'pygit2="^1.7.2"munch="^2.5.0"requests="^2.27.1"Please checkpyproject.tomlfile to see all requirements.ToDo sectionList all tasksCreate menu to select which task should be executedForce installing pre-commit or pre-pushRebase all new commits to one (auto rebase?)Refactor - use dataclasses instead of munch
Package: bifurc2midi
bifurc2midiThis application generates midi bifurcation diagrams generated from generated logistic map data.Seeinstructions for installation on macOSfor more detailed guide on getting started.InstallationPrerequisites:Python 3pipMake sure pip is up to date:python3-mpipinstall--upgradepipInstall package from source code:pipinstall.Now you can run the application from the command line e.g.bifurc2midi--versionUsageFor help:bifurc2midi--helpRun with default settings:bifurc2midiThis will generate a midi file in the current working directory.Sending midi output to a specific device:bifurc2midi --midi-out-device device_nameWheredevice_nameis the name of the midi device you want to send the output to. Use adevice nameof 'default' to use the first available device e.g.bifurc2midi--midi-out-device'device_name'Enabling midi loopback driver on macOS (e.g. for use with DAWS):Open 'Audio MIDI Setup.app'Click 'Window' -> 'Show MIDI Studio'Double click 'IAC Driver' deviceCheck 'Device is online' checkboxClick 'Apply'Make sure 'IAC Driver' enabled as a midi input device in your DAWDevelopmentPre-requisites:Python 3pipvirtualenvUse the Makefile for local development:Activate a virtual environment:makevirtualenvActivate the virtual environment (not strictly necessary, if using the Makefile only):sourcevenv/bin/activateInstall dependencies:makeinstallThen you can:Run the application:makerunExtra arguments can be passed by providing EXTRA_ARGS variable e.g.makerunEXTRA_ARGS="--help"Run tests:maketestRun linter:makelintmake fmtcan be used to automatically fix some linting errors.Other useful make targets are provided too, see the Makefile for details. Or runmake/make helpTODOInvestigate improving blending of note transitions/overlapsAdd tests, replace the placeholder testRun tests in github actionsRelease as a packageReview what is settings/parameters are configurableInstallation shell scriptAdd support to specify the starting noteGUIRealtime parameter tweaking as it sends midi to output
Package: bigarray
bigarrayFast and scalable numpy array using Memory-mapped I/OStable build:pip install bigarrayNightly build from github:pip install git+https://github.com/trungnt13/bigarray@masterThe three principlesTransparency: everything isnumpy.array, metadata and support for extra features (e.g. multiprocessing, indexing, etc) are subtly implemented in thebackground.Pragmatism: fast but easy, simplified A.P.I for common use casesFocus:"Do one thing and do it well"The benchmarksAbout535 times fasterthan HDF5 data (usingh5py) and223 times fasterthan normalnumpy.arrayThe detail benchmark codeArray size: 1220.70 (MB)

Create HDF5   in: 0.0005580571014434099 s
Create Memmap in: 0.000615391880273819 s

Numpy save in: 0.5713834380730987 s
Writing data to HDF5  : 0.5530977640300989 s
Writing data to Memmap: 0.7038380969315767 s

Numpy saved size: 1220.70 (MB)
HDF5 saved size: 1220.71 (MB)
Mmap saved size: 1220.70 (MB)

Load Numpy array: 0.3723734531085938 s
Load HDF5 data  : 0.00041177100501954556 s
Load Memmap data: 0.00017150305211544037 s

Test correctness of stored data
Numpy : True
HDF5  : True
Memmap: True

Iterate Numpy data   : 0.00020254682749509811 s
Iterate HDF5 data    : 0.8945782391820103 s
Iterate Memmap data  : 0.0014937107916921377 s
Iterate Memmap (2nd) : 0.0011746759992092848 s

Numpy total time (open+iter): 0.3725759999360889 s
H5py  total time (open+iter): 0.8949900101870298 s
**Mmap  total time (open+iter): 0.001665213843807578 s**ExamplefrommultiprocessingimportPoolimportnumpyasnpfrombigarrayimportPointerArray,PointerArrayWritern=80*10# total number of samplesjobs=[(i,i+10)foriinrange(0,n//10,10)]path='/tmp/array'# ====== Multiprocessing writing ====== #writer=PointerArrayWriter(path,shape=(n,),dtype='int32',remove_exist=True)deffn_write(job):start,end=job# it is crucial to write at different position for different processwriter.write({"name%i"%i:np.arange(i*10,i*10+10)foriinrange(start,end)},start_position=start*10)# using 2 processes to generate and write datawithPool(2)asp:p.map(fn_write,jobs)writer.flush()writer.close()# ====== Multiprocessing reading ====== #x=PointerArray(path)print(x['name0'])print(x['name66'])print(x['name78'])# normal indexingforname,(s,e)inx.indices.items():data=x[s:e]# fast indexingfornameinx.indices:data=x[name]# multiprocess indexingdeffn_read(job):start,end=jobtotal=0foriinrange(start,end):total+=np.sum(x['name%d'%i])returntotal# use multiprocessing to calculate the sum of all arrayswithPool(2)asp:total_sum=sum(p.map(fn_read,jobs))print(np.sum(x),total_sum)Output:[0 1 2 3 4 5 6 7 8 9]
[660 661 662 663 664 665 666 667 668 669]
[780 781 782 783 784 785 786 787 788 789]
319600 319600
Package: bigbashview
Big Bash View 3Easily create interfaces for Linux systems!BigBashViewis a interface for rendering bash output using QWebEngine or WebKitGtk2.
It rendering also supports a wide variety of languages, such as Python, Ruby, Perl and PHP.Create powerful frontend using common known languages, such as HTML, JS and Shell!Demo for all functions available!Smooth learning curve!Learn moreVisitBigLinux BlogandBigBashView's sectionCheck out ourlegacy page on Google Code
Package: bigbert
BiGBERTBiGBERT is a pre-trained deep learning model that uses website URLs and their respective descriptions to identify educational
resources.InstallationTo begin using BiGBERT, install the PyPi package:pipinstallbigbertImportant Note:The installation size of the package is relatively small, but the first time you instantiate an instance of BiGBERT, two large files need to be downloaded. Details for these files, and their sizes, are provided in the table below.FileSizePurposeedu2vec.txt5.2 GBWord embeddings infused with educational standards domain knowledge. Used by the URL vectorizer component internally.bertedu_1e-6lr.p438.0 MBA BERT model fine-tuned with educational domain knowledge. Used for the snippet vectorizer internally.Data PrepBiGBERT expects apandas.DataFrameas input with two columns:"url"and"description".Usageimportnumpyasnpimportpandasaspdfrombigbert.bigbertimportBiGBERTfromsklearn.metricsimportaccuracy_score# This file should have "url", "description" along with "target" columnsdata=pd.read_csv("some/data/file.csv")y=data["target"]X=data.drop(columns=["target"],inplace=True)model=BiGBERT()y_pred=model.predict(X)print(accuracy_score(y,np.argmax(y_pred,axis=1)))CitationIf you use BiGBERT in a research publication, please include the following citation (provided in BibTeX format):@inproceedings{allen2021bigbert,
  title={BiGBERT: Classifying Educational WebResources for Kindergarten-12$^{th}$ Grades},
  author={Allen, Garrett and Downs, Brody and Shukla, Aprajita and Kennington, Casey and Fails, Jerry Alan and Wright, Katherine Landau and Pera, Maria Soledad},
  booktitle={European Conference on Information Retrieval},
  pages={176-184},
  year={2021},
  organization={Springer}
}LicenseBiGBERT is available under the MIT License.
Package: bigbird
Big BirdBig Bird is a (hopefully useful) package designed to facilitate the quick and convenient creation of basic genetic algorithms in python.Examplesimportbigbird# Config Parameters for Big Birdpop_size=2000# Size of each generation's populationlayer_counts=[8,5,5,3]# No. of nodes in each layerm_r8=0.3# Chance of weight mutationstep_ratio=1/3.6# Size of weight perturbationreinit_r=0.015# Chance of weight reinitialization on mutationimmune=20# No. of non-mutated from top of previous generation# When to automatically stop trainingmax_generation=300# Create a population with configuration parameterspopulation=bigbird.SimplePopulation(pop_size,layer_counts)forgenerationinrange(max_generation):forbirdinpopulation.birds:# Evaluates a bird's fitness based on a given inputbird_inp=your_input_generation_fn()bird_out=bird.eval(bird_inp)decision=output.tolist().index(max(output))bird.fitness=your_fitness_fn(decision)# Saves the best performing bird's weight matriceschamp=sorted(population.birds,key=lambdax:x.fitness)[-1]champ.save(fname='./hall-of-fame/champ-'+str(generation)+'.json')# Iniitializes next generationpopulation.store(immune)population.breed()population.mutate(m_r8,step_ratio,reinit=reinit_r)population.retrieve()Find more exampleshereLicenseMIT
Package: bigbluebutton
The work of this project is derivated fromhttps://github.com/schallis/django-bigbluebutton98f2259fa3 by Steve Challis.It is a wrapper for accessing the API of bigbluebuttonhttp://code.google.com/p/bigbluebutton/wiki/APIA simple example:importargparsefrombigbluebuttonimportMeetingSetup,Meetingimportbbb_settingsif__name__=='__main__':PARSER=argparse.ArgumentParser(description='creates and join a session')PARSER.add_argument('--meeting_name',dest="meeting_name",type=str,required=True,help='name of the meeting')PARSER.add_argument('--meeting_id',dest='meeting_id',required=True,help='id for the meeting')PARSER.add_argument('--moderator',dest='moderator',required=True,help='name of the meeting moderator')PARSER.add_argument('--moderator_password',dest='moderator_password',required=True,help='password for moderator')PARSER.add_argument('--attendee_password',dest='attendee_password',required=True,help='password for attendee')PARSER.add_argument('--url',dest='url',required=True,help='pre upload url')ARGS=PARSER.parse_args()session=MeetingSetup(bbb_settings.BBB_API_URL,bbb_settings.SALT,ARGS.meeting_name,ARGS.meeting_id,ARGS.attendee_password,ARGS.moderator_password,pre_upload_slide=ARGS.url)session.create_meeting()print("meeting expires if noone joins in")meeting=Meeting(bbb_settings.BBB_API_URL,bbb_settings.SALT)print("MODERATOR:")print(meeting.join_url(ARGS.meeting_id,ARGS.moderator,ARGS.moderator_password))print('-------------------------------------------')print("RANDOM USER:")print(meeting.join_url(ARGS.meeting_id,'RANDOM',ARGS.attendee_password))print('-------------------------------------------')print("ALL MEETINGS")print(meeting.get_meetings())print('-------------------------------------------')print("IS RUNNING (meeting is only running after someone has joined in)")print(meeting.is_running(ARGS.meeting_id))print('-------------------------------------------')print("END MEETING URL")print(meeting.end_meeting_url(ARGS.meeting_id,ARGS.moderator_password))print('-------------------------------------------')ifmeeting.is_running(ARGS.meeting_id):print("END MEETING")meeting.end_meeting(ARGS.meeting_id,ARGS.moderator_password)print('-------------------------------------------')
Package: bigbluebutton2
Synopsisbigbluebutton2 is a sophisticated Python client library for BigBlueButton™
with Django integration.This package implements tools for using the API of theBigBlueButtonweb conferencing and online teaching software. In order to
broadly support the software in widespread python-based ecosystems, it
contains:an object-oriented library wrapping theXML-RPC APIa multi-server capable container that transparently wraps BigBlueButton
server clusters, including load-balancinga command-line interface (CLI) tool to manage BigBlueButton (including
clusters)an integration app for theDjangoweb framework, including an
API proxy view with multi-tenant/scoping supportThe project serves as the core forInfraBlue, the django-based material
design BigBlueButton frontend, and the conferencing integration in theAlekSISschool information system.DocumentationFor an overview of all features of the different parts of
python-bigbluebutton2, as well as a complete API reference, please refer to
thefull documentation.LicenseThis library is free and open software, licensed under the terms of the MIT
license. See the LICENSE file for details.
Package: bigbluebutton-api
BigBlueButton Python APIThe work of this project is forked fromhttps://hg.sr.ht/~dreimark/bigbluebutton-python-apiwhich in turn is derived fromhttps://github.com/schallis/django-bigbluebutton98f2259fa3 by Steve Challis.It is a wrapper for accessing the API of BigBlueButtonhttps://docs.bigbluebutton.org/dev/api.htmlInstallationpip install bigbluebutton-apiUsageHere are a few things you can do with this library.from bigbluebutton import BigBlueButton
bbb = BigBlueButton('<YOUR_BBB_URL>', '<YOUR_BBB_SALT>')
meeting_id = 'some-meeting-id'
bbb.create_meeting(meeting_id, 'Some meeting name', 'attendee password', 'moderator password')

moderator_link = meeting.join_meeting_url(meeting_id, 'Example Moderator', 'moderator password'))
attendee_link = meeting.join_meeting_url(meeting_id, 'Example Attendee', 'attendee password'))

all_meetings = meeting.get_meetings()
is_running = meeting.is_running(meeting_id)
end_link = meeting.end_meeting_url(meeting_id, 'moderator password')

if meeting.is_running(meeting_id):
    meeting.end_meeting(meeting_id, 'moderator password')DisclaimerI have absolutely no experience with publishing packages to PyPI and with copyright / attributions. I don't intend
to step on anyone's toes, I just felt like the original library needed a few bugfixes and improvements.If you feel I haven't recognized your work on this project, pleaselet me know.I don't plan on further maintaining this package, unless the BBB API changes enough to break it. We do use this
in production, however I can't guarantee everything works (we mainly use thecreateandjoincalls). I can, however,
review any PRs and accept new contributors (after a few approved PRs).