Saravanan666/pypi-org huggingface dataset:
Package: rlib
rlibrlibis a small deep reinforcement learning library with implementations of popular deep RL algorithms. Each algorithm is highly modular and customizable, making this library a great choice for anyone who wants to test the performance of different algorithms in the same environment.rlibuses PyTorch as the library of choice for its initial version, but support for TensorFlow is on the roadmap.Installationpip install rlibUsageUsingrlibis this simple:fromrlib.algorithms.dqnimportDQNAgentfromrlib.environments.gymimportGymEnvironmente=gym.make('CartPole-v0')observation_size=4action_size=2dqn=DQNAgent(observation_size,action_size)env=GymEnvironment(e,dqn)env.train()env.test()AdvancedTensorBoard and GIFRecorderInitializeLoggerand/orGIFRecorderobjects.os.makedirs('your/log/dir',exist_ok=True)logger=Logger(output_dir)gifs_recorder=GIFRecorder(output_dir,duration=3.0)Initialize a new environment using these objects.env=GymEnvironment(e,dqn,logger=logger,gifs_recorder=gifs_recorder)To check Tensorboard logs, run:tensorboard --logdir=your/log/dirCustom modelsDefine your own custom model.classNeuralNet(torch.nn.Module):def__init__(self):super(NeuralNet,self).__init__()self.fc1=nn.Linear(4,8)self.relu=nn.ReLU()self.fc2=nn.Linear(8,2)defforward(self,x):out=self.fc1(x)out=self.relu(out)out=self.fc2(out)returnoutCheck the documentation for the algorithm you are using for the appropriate argument name. For DQN:dqn=DQNAgent(observation_size,action_size,qnetwork_local=NeuralNet(),qnetwork_target=NeuralNet(),)Saving model weightsSet themodel_output_dirargument when creating a new instance of an algorithm to the directory where you want your model to be saved.TestingTo run all tests:python -m unittest discover test/ContributingInstallationFeel free to open issues with any bugs found or any feature requests. Pull requests are always welcome for new functionality.virtualenv -p python3 venv
cd rlib/
source venv/bin/activate
pip install -r requirements.txtTo make sure your installation worked, run one of the algorithms in the test folder:python test/algorithms/dqn_test.pyLicenserlibis released under theMIT License.
Package: rlib-date
Alternative to standard datetime library.IMPORTANT NOTE: No timezone support!There is currently no timezone support. It is assumed that all dates and times are local.Installation$pipinstallrlib-dateGetting StartedfromrdateimportDate,Timet=Time.now()t=Time(22)# 10:00:00 pmd=Date.today()d=Date(2017)# 2017-01-01Check the doc strings and unit tests for examples.License“MIT”. See LICENSE for details. Copyrightt5w5h5@gmail.com, 2018.
Package: rlib-log
Tag-based logging library for Python 3.This logging library is based on the following concepts (partially inspired by thetwelve-factor app):All output is written unbuffered to stdout. (There are no handlers.)The application controls the output in a print()-style syntax. (There are no formatters.)Output lines are tagged and the actual output can be filtered by tags. (There are no log levels.)All configuration is taken from environment variables. (There are no configuration files.)All logging to the standard logging library is redirected to this library. (We are greedy.)Tagging mechanismEvery log output is tagged with a set of implicitly assigned or explicitly specified tags.Explicit tags are specified in a list as optional first parameter of log methods e.g. log.info([‘tag’], …)Implicit tags are:The name of the module that contains the log statement.The name used as log method e.g. log.warning(). Note: There are no pre-defined log methods.
Any valid method name if possible e.g. log.whatever() or log.this_too().In case of logging redirected from the standard library:The log level name in lowercase.The name of the logger e.g. ‘root’ for the root logger.FilteringThe actual log output is filtered by a list of included or excluded tags.
If an include list is specified, only those logs are printed of which at least one tag is part of the include list.
If an exclude list is specified, only those logs are printed of which no tag is part of the exclude list.
If no list is specified, all logs are printed. If both lists are specified, the exclude list has priority.Hint: To omit all log output, specify an include list with an unused tag e.g. LOG_INCLUDE=_nothingInstallation$pipinstallrlib-logGetting Started$LOG_INCLUDE=debug;some_tagfromrlogimportloglog.debug('How many fingers:',10)log.something(['some_tag'],'Output something with additional tag.')Configuration / environment variablesLOG_FTIME = “%x %X.%f” (default) | <strftime-style format for the time>LOG_OUTPUT = native (default) | json
The JSON-formatted output line is a dict with the following fields:
- time: a float value of the timestamp (see datetime.timestamp())
- tags: a list of the log tags
- args: a list of the positional arguments
- kwargs: a dict of the keyword arguments
- exception (optional): a tuple if exception info if that was available during loggingLOG_INCLUDE = <;-separated list of tags to be included in output>LOG_EXCLUDE = <;-separated list of tags to be excluded from output>LOG_LOGGING_LEVEL = DEBUG (default) | <level name for standard logging redirect>LOG_THREADED = false (default) | true
When threaded log is enabled, log output is done within a daemon thread that is started
during module import.License“MIT”. See LICENSE for details. Copyrightt5w5h5@gmail.com, 2018.
Package: rlib-store
General purpose store for key/value pairs, time series and event sequences with optional encryption.Values are encrypted as soon as thekeyargument is specified withStore(). Alternatively, the key
can be fixed for the store by settingStore._key. The same store can be used in encrypted and unencrypted mode.Note: Keys must be of type ``str`` and are never encrypted.Different backends are available for persistence. The backend is selected by thedsnargument ofStore():PostgreSQL database:dsn='postgresql://localhost'Redis server:dsn='redis://localhost'SQLite data file:dsn='sqlite://datafile.db'Different namespaces can be used within a single store. The namespace is selected with thenamespaceargument ofStore()or by settingStore._namespace. If no namespace is selected it defaults todefault.Values are stored using the pickle module (before encryption). This behavior can be changed by subclassingStoreand overwriting_dumpand_load. For example:classJsonStore(Store):def_dump(self,value):returnjson.dumps(value)def_load(self,data):returnjson.loads(data)Key/valueFunctions for the key/value store include:set,get,delete,has, andkeys. The k/v store can
also be used in a dict-like fashion withs[k],del s[k],k in s, andlen(s).withStore('file.name',frozen=False)askv:kv.set('some_key',value)value=kv.get('some_key')delkv['some_key']Time seriesTime series are key/value pairs where the value changes over time. Each value change (or data point) is recorded
with a timestamp. The timestamp is an arbitraryintvalue and its meaning must be determined by the application.
An even frequency between the timestamps is optional.Functions for time series include:range,first,last,missing,iscomplete,extend,remove,
andtimeseries.withStore('file.name',frozen=False)asts:ts.extend('some_series',(timestamp1,value1),...)timestamp,value=ts.last('some_series')ts.remove('some_series')Event sequencesEvent sequences are key/dict pairs where each change to the dict is recorded as an event.
Events are stored as tuple(timestamp, item, op, value)where:timestampis the POSIX timestamp in milliseconds when the event was recorded (typeint)itemis the name of the dict member (typestr)opis the operator to apply to the dict member (operator.setitem,operator.delitem,operator.add, …)valueis the value to apply to the dict member (orNonefor unary operators such asoperator.delitem)Functions for event sequences include:current,past,apply,prune,events, andeventsources.withStore('file.name',frozen=False)ases:es.apply('some_dict',{'item':1})# op defaults to operator.setitemes.apply('some_dict',{'item':(operator.add,1)})es.events('some_dict')==[(timestamp,'item',operator.setitem,1),(timestamp,'item',operator.add,1)]es.current('some_dict')=={'item':2}es.prune('some_dict',remove=True)Installation$pipinstallrlib-storeGetting StartedfromrstoreimportStoreCheck the doc strings and unit tests for examples.License“MIT”. See LICENSE for details. Copyrightt5w5h5@gmail.com, 2018.
Package: rlieh_pwm
# RLIEH PWMThis module is intended to provide an interface to manage PWM on RLIEH systems.Rlieh-pwm is a part of the [RLIEH project](http://www.lebiklab.com/portfolio/rlieh/)and can be used on a Raspberry Pi.## PrerequisitesThis module relies on [pi-blaster project](https://github.com/hybridgroup/pi-blaster) providing 8_PWM channels at a 100Hz PWM frequency and 1000 PWM steps.### Default supported GPIO pinsGPIO number  Pin P1 header4              P1-717             P1-1118             P1-1221             P1-1322             P1-1523             P1-1624             P1-1825             P1-22## Install### From source```git clone https://github.com/owatte/rlieh-pwm.gitcd rlieh-pwmpython3 setup.py install```### From pip```pip3 install rlieh-pwm```## Usage### as Py module```python>>> from rlieh_pwm.core import RliehPWM>>> light = RliehPWM(pin=18)>>> light.pwm = 0.420>>> light.modulate(0.1, 80, duration=0.5)```### as CLI tool```bash$ rlieh-pwm set 0.42 18, duration=0$ rlieh-pwm range 0.1 80 18 --duration=0.5```The CLI tool code shows a use case with LEDs to make some special effects such asdusk, dawn, sunrise, sunset or even a thunderstorm with lightening effect.```bashrlieh@raspberry:~ $ rlieh-pwm -hPWM management for RLIEH systems:Usage:rlieh-pwm (on|off) GPIO [--log-level=LOG_LEVEL] [--log-path=LOG_FILE_PATH]rlieh-pwm set VALUE GPIO [--log-level=LOG_LEVEL] [--log-path=LOG_FILE_PATH]rlieh-pwm range BEGIN END GPIO [--duration=MINUTES] [--log-level=LOG_LEVEL][--log-path=LOG_FILE_PATH]rlieh-pwm fx-light (--dawn|--sunrise|--noon|--sunset|--dusk) GPIO[--duration=MINUTES] [--log-level=LOG_LEVEL][--log-path=LOG_FILE_PATH]rlieh-pwm (-h |--help)rlieh-pwm (-v |--version)Arguments:GPIO        Raspberry Pi GPIO pinVALUE       Percent of modulationminimal modulation = 0.01, power Off = 0, power On = 100Options:-h --help                 Shows this help and exit.-v --version              Shows version number.--duration=MINUTES        Duration of effect in minutes.(Default value = 1.0)--log-level=LOG_LEVEL     notset, critical, warning, error, info, debug.(Default value = notset)--log-path=LOG_FILE_PATH  Set log file path.(Default value = /var/log/rlieh)Tip:Use an alias to set a default GPIO (eg. alias light='rlieh-pwm $@ 18')RLIEH puts a roXXXing poney in your aquarium and greenhouses```## LicenceReleased under The [GPL v3 License](COPYING.md).Copyright (C) 2017 Olivier Watte
Package: rlieh-satlight
# RLIEH Sat lightThis module is intended to provide a python3 module and a CLI tool to managelight phases on a RLIEH sat systemRlieh-satlight is a part of the [RLIEH project](http://www.emnet.cc/portfolio/rlieh/)and can be used on any system running python.## .ini file sample```ini[hardware]type = satip = 192.168.1.43pwm_channel = 0; type = controller; pin = 18; light pwm values (percent)[light_thresholds]dawn = [0, 20]sunrise = [20, 75]noon = [75, 100, 75] ; unusedsunset = [75, 20]dusk  = [20, 0]; light modulation phases duration (in mn)[light_duration]dawn = 10sunrise = 10sunset = 10dusk = 10```## Install### From source```bashgit clone https://work.ipeos.com/gitlab/rlieh/rlieh-sat-light-client.gitcd rlieh-satlightpython3 setup.py install```coming soon to https://github.com/owatte/rlieh-satlight.git### From pipcoming soon```pip3 install rlieh-satlight```## Usage### as Py module```python>>> from rlieh_sat.core import RliehSatLight>>> light = RliehSatLight('/home/pi/conf/matouba.ini', 'dawn')>>> light.request()```### as CLI tool```bash$ rlieh-satlight -husage: rlieh-satlight [-h] -i INI -p PHASEManage light on RLIEH sat.optional arguments:-h, --help               show this help message and exit-i INI, --ini INI        ini file full path-p PHASE, --phase PHASE  light phase```#### Simple call example*dawn* phase on *matouba* tank```$ rlieh-satlight -i /home/pi/conf/matouba.ini -p dawn```#### Tip : create an aliasIf you manage several tanks, the best way is probably to create aliases```bash$ alias matouba_dawn='rlieh-satlight -i /home/pi/conf/matouba.ini -p dawn'```## LicenceReleased under The [GPL v3 License](COPYING.md).Copyright (C) 2018 EmNet
Package: rlimit
Rate Limitthis package help you
to limit the call's[frequent]rates of any callable in python.default built-in memory is :expiring dict memorythat not recommended for production usageUsagebasic usagefromsrc.rlimitimportLimiter,Perfromtimeimportsleep@Limiter(times=2,per=2*Per.SECOND)deffunc_a():returnTruefunc_a()# Truefunc_a()# Truefunc_a()# OverflowErrorsleep(2)func_a()# Truefunc_a()# Truefunc_a()# OverflowErrorkey examplefromsrc.rlimitimportLimiter,Per@Limiter(times=2,per=2*Per.SECOND,key=lambdaname,age:str(hash((name,age))))deffunc_a(name:str,age:int):returnf'hi2{name}-{age}'func_a('gzuz',13)func_a('gzuz',14)func_a('gzuz',13)func_a('gzuz',15)func_a('gzuz',14)func_a('gzuz',14)# OverflowErrorfunc_a('gzuz',13)# OverflowErrorfastapifromsrc.rlimitimportLimiter,PerfromfastapiimportAPIRouter,HTTPException,Requestrouter=APIRouter(...)@router.get(...)@Limiter(times=2,per=4*Per.SECOND,key=lambdar:r.client.host,exception=HTTPException(429))deftest_ratelimit(request:Request):return'no limit'Installpip install git+https://github.com/omidekz/rlimitpypi will addCustom Memoryto implement new memory class,
you have to extendBaseMemoryabstract class
Package: rl-inventory-api
Para você usar essa Api é necessário:Transferir todos os dados do seu inventário para um csv usando o BakkesMod.Baixar esse pacote pelo pip.pip install rl-inventory-apiEssa Api tem como função principal facilitar obtenção de dados específicos de seu inventário de maneira simples,
por exemplo, imagine poder descobrir quantos itens non crate você tem:fromrl_inventory_apiimportInventoryinv=Inventory.read()my_non_crate_items=inv.filter_non_crate().itemsamount_of_non_crate=len(my_non_crate_items)Pronto, com apenas 4 linhas de código você conseguiu obter todos os dados dos seus itens non crate e também a quantidade
de itens non-crate que você tem.
Package: rlipython
rlipythonUp until version 4.2, command-line IPython had a readline frontend,
which was replaced by prompt_toolkit in IPython 5.rlipythonbrings
that classic readline functionality to IPython 5.4+ and 6.0+.Seehttps://github.com/ipython/ipython/issues/10364for information.Try it outYou can try outrlipythonlike this:ipython --TerminalIPythonApp.interactive_shell_class=rlipython.TerminalInteractiveShellDo I have to do that every time?No. To haverlipythonenabled automatically, do this:importrlipython;rlipython.install()This will enablerlipythonfor the default IPython profile if you
run it using plainpythonor the active profile if you run it fromipython.After runningrlipyton.install(), you can go back to starting
IPython just by usingipythonwithout the extra configuration flag.Removalimportrlipython;rlipython.uninstall()Python 2 or Python 3rlipythonwill work in both Python 2 and Python 3. However, as of
May 15th, 2017, IPython 6.0 is the only released version of IPython
which supports a configurableinteractive_shell_class, but IPython
6.0 only works in Python 3. So if you want to userlipythonin
Python 2, you will have to install theIPython 5.x branch from
git, or wait for
IPython 5.4 release.LicenseThis code has was extracted from IPython 5.x-dev, so it is underIPython’s LICENSE.
Package: rlish
rlishSaving and loading information in Python should be shorter and easierrlishis a Python package for simple and efficient data serialization and deserialization. It supports bothpickleandjoblibserialization methods, making it suitable for a wide range of data types, including large NumPy arrays and machine learning models.https://github.com/andrewrgarcia/rlish/assets/10375211/ad1699b9-6772-4bc5-a74a-61f761601864InstallationYou can installrlishusing pip:pipinstallrlishUsageself.test_joblib = np.random.randint(0,10,(400,400,400))Saving DataTo save data, use thesavefunction. You can choose betweenpickleandjoblibformats:importrlishdictionary={'a':1,'b':2,'c':3}tensor=np.random.randint(0,10,(200,200,200))# Save dictionary using picklerlish.save(dictionary,'my_dictio')# Save data using joblibrlish.save(tensor,'huge_tensor',format='joblib')Loading DataTo load data, use theloadfunction:# Load data saved with pickleloaded_data_pickle=rlish.load('my_dictio')# Load data saved with joblibloaded_data_joblib=rlish.load('huge_tensor')# Load your data with the format printed out (if you forgot)loaded_data_joblib=rlish.load('huge_tensor',what_is=True)ContributingContributions torlishare welcome! Feel free to open an issue or submit a pull request.
Package: rlist-files
list_filesFunction to list the files in directory with pattern recognition and regular expression support.Free software: MIT licenseDocumentation:https://rlist-files.readthedocs.io.FeaturesThis function was created to emulate R’slist.files()behavior in python.CreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.History0.0.1 (2023-03-16)First release on PyPI.
Package: rlj
A convenient local judge. By _rqy.ScreenshootContents1Install2Usage2.1Config File2.2Data2.3Judge2.4Compiling Parameter1InstallYou can install it bypip3. Dont forgetsudo.$sudopip3install--upgraderljOr bygit$gitclonegit@github.com:rqy1458814497/RLJ.git$cdRLJ$sudopython3setup.pyinstall2Usage2.1Config FileMake a File namedconfig.yml, It should include:Source``(optional),``Input,Output,#,Time Limit,Memory Limit,Compiling Parameter.For example:Source:example.cppInput Data:example(\d*)\.inOutput Data:example(\d*)\.ansTime Limit:1000Memory Limit:128WhereInput Data/Output Datauses regular expressions.Two i/o data will be matched if they match the regular expression with the same contents of each group.An easier way is run:$rlj--genConfig[FILE]to generateconfig.yml(and use the argument ‘FILE’ to modify its name).2.2DataPlease place all data files under the folderdata.e.g. in the case of the config file above,  There should be these files indata:example1.in,example1.ans,example2.in, and so on.You can also setData Dirinconfig.ymlto modify the path to datas.2.3Judge$rlj[-s|--slient][-jSource|--judgeSource][-cConfigFile][--O2]To judge you only need to runrljIf you want to see short output, you can runrlj--silentorrlj-sFor more detail you can runrlj-h.2.4Compiling ParameterNo parameter is applied when compiling by default.You can addCompiling Parameterinconfig.yml.--O2is able to be set when running. See above.
Package: rll
reiterlablib (rll)A collection of different modules providing methods for frequently used computations and visualizations used in the reiterlab.
See some of our developed software on our Github pagehttps://github.com/reiterlab.InstallationTo install the latest release of rll, runpip install rll*If you want to customize some functions, it is best to:Clone the repository from Github withgit clone https://github.com/reiterlab/reiterlablib.gitCreate distribution package by going to the main folder withcd reiterlabliband runpython setup.py clean sdist bdist_wheelInstallrllto your python environment by runningpip install -e .Test installation withpython -c 'import rll'andpytest tests/Releasesrll v0.1.0 2020-12-11: Initial release of package.rll v0.1.2 2020-12-11: Added flexibility with legend display.rll v0.1.3 2021-01-04: Added functions to convert different measures of tumor sizes.rll v0.1.4 2021-02-04: Adding custom text labels to histograms. Added barplots.rll v0.1.5 2021-04-09: Added some additional plotting options to barplots and xyplots. Added options for marker sizes. Added option for grouped histograms.rll v0.1.6 2021-04-09: Reading SEER data.LicenseThese methods are licensed under the GNU General Public License, Version 3. The methods are free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License. There is no warranty for this free software.Translational Cancer Evolution Laboratory, Canary Center for Cancer Early Detection, Stanford University,https://reiterlab.stanford.edu
Package: rllife
LifeLife is a library for reinforce learning implemented by PyTorch.目前，Life库实现的算法有：Sarsamulti-SarsaQ-LearningDyna-QDQNDouble-DQNDueling-DQNREINFORCE策略梯度Actor-CriticPPODDPGSACBCGAILCQL主要特征基于目前主流的深度学习框架pytorch，支持gpu加速。简洁易用，仅需寥寥几行代码，即可实现强化学习算法的构建与训练。覆盖面广，从传统的QLearning，到一些最新的强化学习算法都有实现。图解Life的结构Life将强化学习算法分为以下几类：传统的强化学习算法，如Sarsa;只基于值函数的深度强化学习算法，如DQN;基于策略函数和值函数的深度强化学习算法，如AC;模仿强化学习算法，如BC;离线强化学习算法，如CQL。对于每一类强化学习算法，都配有一个训练器训练器的名称和算法的名称是一一对应的，如要训练DQN，则其训练函数的名称为：train_dqn以DQN为例，其结构如下其中：dqn.py中为传统DQN算法dqn_improved.py中为一些改进的DQN算法trainer中包含了以上各种dqn算法的训练函数Get Started要使用Life进行强化学习，仅需简单的三步，下面以DQN在CartPole环境上的训练为例进行快速入门：第一步，导入相关的模块fromlife.dqn.dqnimportDQN# 导入模型fromlife.dqn.trainerimporttrain_dqn# 导入训练器fromlife.envs.dis_env_demoimportmake# 环境的一个例子fromlife.utils.replay.replay_bufferimportReplayBuffer# 回放池importtorchimportmatplotlib.pyplotasplt第二步，设置超参数，并构建模型# 设置超参数lr=2e-3num_episodes=500hidden_dim=128gamma=0.98epsilon=0.01target_update=10buffer_size=10000minimal_size=500batch_size=64device=torch.device("cpu")# 也可指定为gpu : torch.device("cuda")env=make()# 建立环境，这里为 CartPole-v0replay_buffer=ReplayBuffer(buffer_size)# 回放池state_dim=env.observation_space.shape[0]action_dim=env.action_space.n# 建立模型agent=DQN(state_dim,hidden_dim,action_dim,lr,gamma,epsilon,target_update,device)# DQN模型第三步，使用训练器训练模型result=train_dqn(agent,env,replay_buffer,minimal_size,batch_size,num_episodes)上述训练函数返回的是：训练过程中每个回合的汇报，如果你想的话，可以将其可视化出来：episodes_list=list(range(len(result)))plt.figure(figsize=(8,6))plt.plot(episodes_list,result)plt.xlabel("Episodes")plt.ylabel("Returns")plt.title("DQN on{}".format("Cart Pole v1"))plt.show()得到：可见，除了超参数的设置之外，我们构建DQN算法只使用了两行代码：fromlife.dqn.dqnimportDQNagent=DQN(state_dim,hidden_dim,action_dim,lr,gamma,epsilon,target_update,device)我们训练DQN同样只使用了两行代码：fromlife.dqn.trainerimporttrain_dqnresult=train_dqn(agent,env,replay_buffer,minimal_size,batch_size,num_episodes)这让我们的强化学习实现的相当简洁和方便！上述的例子在项目的examples中关于名称与LOGOLife的中文含义为：生命，生活，强化学习本来就是人生的一个过程，我们无时无刻不在进行着强化学习。强化学习不仅是一种科学的决策方法，各种算法的思想也给予我们很多人生的哲理，使人受益匪浅。LOGO 底色采用深蓝色，图案和文字采用浅蓝白色，整体端庄严谨，富有科技感。文字部分由项目名称LIFE字样和寄语：RL IS THE PROCESS OF LIFE	即可以理解为强化学习是人生的过程，也可以理解为强化学习是Life库的程序，一语双关。LOGO图案部分为4个伸长了的F，同时将F上面一个笔画伸长，使其左旋90°时形成L字样，为LIFE的简写LF; 同时致敬OpenAI的LOGO:
Package: rl-mgm
RL_MGM ModuleTable of ContentsRL_MGM ModuleTable of ContentsGeneral Info* _A2CRL* _DQRL* _PPORL* _RLCoach_ENVs* alpyneTechnologiesInstallationUsageRL agent generationEnvironment definitionsLicenseGeneral InfoThis RL_MGM (reinforcement learning micro-grid managers) module contains a set of submodules that define RL networks for use as energy management agents. The modules can be defined as follows:* _A2CRL* _DQRL* _PPORL* _RLCoach_ENVs* alpyneTechnologiesList the technologies used in this project. For example:Python: 3.8numpy: 1.26.3pandas: 2.1.4Joblib: 1.3.2matplotlib: 3.8.2torch: 2.1.2Installationpip install RL_MGM.UsageRL agent generationEnvironment definitionsLicenseMIT LicenseCopyright (c) <2023>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.