Saravanan666/pypi-org huggingface dataset:
Package: pycti
OpenCTI client for PythonThe official OpenCTI Python client helps developers to use the OpenCTI API by providing easy to use methods and utils.
This client is also used by some OpenCTI components.InstallTo install the latest Python client library, please usepip:$pip3installpyctiLocal development# Fork the current repository, then clone your fork$gitclonehttps://github.com/YOUR-USERNAME/client-python
$cdclient-python
$gitremoteaddupstreamhttps://github.com/OpenCTI-Platform/client-python.git# Create a branch for your feature/fix$gitcheckout-b[branch-name]# Create a virtualenv$python3-mvenv.venv
$source.venv/bin/activate# Install the client-python and dependencies for the development and the documentation$python3-mpipinstall-e.[dev,doc]# Set up the git hook scripts$pre-commitinstall# Create your feature/fix# Create tests for your changes$pytest# Push you feature/fix on Github$gitadd[file(s)]$gitcommit-m"[descriptive message]"$gitpushorigin[branch-name]# Open a pull requestInstall the package locally$pipinstall-e.DocumentationClient usageTo learn about how to use the OpenCTI Python client and read some examples and cases, refer tothe client documentation.API referenceTo learn about the methods available for executing queries and retrieving their answers, refer tothe client API Reference.TestsInstall dependencies$pipinstall-r./test-requirements.txtpytestis used to launch the tests.Launch testsPrerequisiteYour OpenCTI API should be running.
Your conftest.py should be configured with your API url, your token, and if applicable, your mTLS cert/key.LaunchingUnit tests$pytest./tests/01-unit/Integration testing$pytest./tests/02-integration/AboutOpenCTI is a product designed and developed by the companyFiligran.
Package: pyctlib
pyctlibIntroductionPackagepyctlibis the fundamental package for projectPyCTLib, a powerful toolkit for python development. This package provides basic functions for fastpython v3.6+programming. It provides easy communication with the inputs and outputs for the operating systems. It provides quick try-catch functiontouch, useful types likevector, timing tools liketimethisandscopeas long as manipulation of file path, reading & writing of text/binary files and command line tools.InstallationThis package can be installed bypip install pyctlibor moving the source code to the directory of python libraries (the source code can be downloaded ongithuborPyPI).pipinstallpyctlibBasic Typesvectorvectoris an improved implement oflistfor python. In addition to original function forlist, it has the following advanced usage:In[1]:frompyctlib.basictypeimportvectorIn[2]:a=vector([1,2,3,4,5,6,7,8,9,10])In[3]:a.map(lambdax:x*2)Out[3]:[2,4,6,8,10,12,14,16,18,20]In[4]:a.filter(lambdax:x%2==0)Out[4]:[2,4,6,8,10]In[5]:a.all(lambdax:x>1)Out[5]:FalseIn[6]:a.any(lambdax:x==2)Out[6]:TrueIn[7]:a[a>7]=7In[8]:aOut[8]:[1,2,3,4,5,6,7,7,7,7]In[9]:a.reduce(lambdax,y:x+y)Out[9]:49In[10]:a.index(lambdax:x%4==0)Out[10]:3File ManagementTiming Toolsscope>>>frompyctlibimportscope,jump>>>withscope("name1"):...print("timed1")...timed1[name1takes0.000048s]>>>withscope("name2"),jump:...print("timed2")...>>>timethis>>>frompyctlibimporttimethis>>>@timethis...deffunc():print('timed')...>>>func()timed[functakes0.000050s]Touch function>>>frompyctlibimporttouch>>>touch(lambda:1/0,'error')'error'>>>touch('a')>>>a=4>>>touch('a')4Acknowledgment@Yiteng Zhang, Yuncheng Zhou: Developers
Package: pyctlmbatchtoolbox
Descriptionpyctlmbatchtoolboxis command line wrapper aroundControl-M REST API. The goal is to provide a developer friendly
command line tool easy to integrate with other tools.Installpip install pyctlmbatchtoolbox --upgradeSRE toolbox includedMost of the tools include list/add/delete operations.Tools included:batch_conditionbatch_connectionprofilebatch_deploybatch_hostgroupbatch_logsbatch_statusbatch_tokenbatch_orderexport CTM_USER=user
export CTM_PASS=***
export CTM_REST_API=https://<<controlm server instance>>:8443/automation-api
export CTM_BATCH_LOG_LEVEL=INFO

batch_order --controlm-server CTMSERVER --folder folder  
batch_logs --jobname JOBID 
batch_logs  --jobname JOBID
batch_condition --action GET --search-criteria 'name=*&server=CTMSERVER' 
batch_hostgroup --controlm-server CTMSERVER 
batch_hostgroup --controlm-server CTMSERVER --hostgroup HOSTGROUP1
Package: pyctools.core
A picture processing algorithm development kit.Pyctools is a collection of picture processing primitive components that you can easily interconnect to make complex algorithm simulations.
It works with stills or video, and utilises popular libraries such asPython Imaging Library,NumPyandOpenCV.Example projects using pyctools includepyctools-pal(a simulation of theTransform PAL decoder) andpyctools-demo(demonstrations of some simple processing).DocumentationThe core Pyctools library and components are documented onRead The Docs.
If you install additional components you should build a local copy of the documentation to include the extra components.RequirementsEssentialPythonversion 2.7 or 3.x.NumPyfor its powerful multi-dimensional array object.Python Imaging Libraryfor image file reading and writing. (Thepillowfork of PIL is recommended.)Cythonto build fast extensions for Python.gexiv2to handle metadata.pgiorPyGObjectPython wrapper for gexiv2.OptionalOpenCVpython bindings for advanced image processing.FFmpegto read and write video files.rawkitto read raw image files.PyQt5andPyOpenGLgraphic toolkit used by the Pyctools visual editor and the Qt display components.Sphinxandmockto build local documentation.InstallationPlease seethe documentationfor full details of how to install Pyctools and its requirements.LicencePyctools - a picture processing algorithm development kit.http://github.com/jim-easterbrook/pyctoolsCopyright (C) 2014-18  Pyctools contributorsThis program is 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, either version 3 of the
License, or (at your option) any later version.This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.You should have received a copy of the GNU General Public License
along with this program.  If not, seehttp://www.gnu.org/licenses/.
Package: pyctorize
PyctorizeA Python command line program to extract frames of videosPrerequisitesPython 3Installingpython3 -m pip install pyctorizeUsing$pyctorize<PATH_TO_FILE>\--output<PATH_TO_OUTPUT_DIRECTORY>\--start-time<TIME_IN_MILLISECONDS_OF_FIRST_FRAME>\--step<CAPTURE_IMAGE_EVERY_STEP_MILLISECONDS>Example:$pyctorizeexample.mp4\--outputoutput/\# save result to output/--start-time 100 \ # starting at 100ms--step 1000 # take a frame every secondIn this example, pyctorize will produce a frame for 1100ms, 2100ms, 3100ms and so on.Built WithMoviepyAuthorsVíctor Colombo-vccolomboLicenseThis project is licensed under the MIT License - see theLICENSEfile for details
Package: py-ctp
py_ctp上期技术期货交易 api 之 python 封装，实现接口调用。支持 windows(x86/x64) linux(x64).更新v6.6.8 全函数封装ctp 接口封装由ctp_generate生成安装pipinstallpy-ctp==6.6.8.20220915示例#!/usr/bin/env python# -*- coding: utf-8 -*-__title__='test py ctp of se'__author__='HaiFeng'__mtime__='20190506'frompy_ctp.tradeimportCtpTradefrompy_ctp.quoteimportCtpQuotefrompy_ctp.enumsimport*importtimeclassTestTrade(object):def__init__(self,addr:str,broker:str,investor:str,pwd:str,appid:str,auth_code:str,proc:str):self.front=addrself.broker=brokerself.investor=investorself.pwd=pwdself.appid=appidself.authcode=auth_codeself.proc=procself.t=CtpTrade()self.t.OnConnected=self.on_connectself.t.OnUserLogin=lambdao,x:print('Trade logon:',x)self.t.OnDisConnected=lambdao,x:print(x)self.t.OnRtnNotice=lambdaobj,time,msg:print(f'OnNotice:{time}:{msg}')self.t.OnErrRtnQuote=lambdaobj,quote,info:Noneself.t.OnErrRtnQuoteInsert=lambdaobj,o:Noneself.t.OnOrder=lambdaobj,o:Noneself.t.OnErrOrder=lambdaobj,f,info:Noneself.t.OnTrade=lambdaobj,o:Noneself.t.OnInstrumentStatus=lambdaobj,inst,stat:Nonedefon_connect(self,obj):self.t.ReqUserLogin(self.investor,self.pwd,self.broker,self.proc,self.appid,self.authcode)defrun(self):self.t.ReqConnect(self.front)# self.t.ReqConnect('tcp://192.168.52.4:41205')defrelease(self):self.t.ReqUserLogout()classTestQuote(object):"""TestQuote"""def__init__(self,addr:str,broker:str,investor:str,pwd:str):""""""self.front=addrself.broker=brokerself.investor=investorself.pwd=pwdself.q=CtpQuote()self.q.OnConnected=lambdax:self.q.ReqUserLogin(self.investor,self.pwd,self.broker)self.q.OnUserLogin=lambdao,i:self.q.ReqSubscribeMarketData('rb2210')defrun(self):self.q.ReqConnect(self.front)defrelease(self):self.q.ReqUserLogout()if__name__=="__main__":front_trade='tcp://180.168.146.187:10202'front_quote='tcp://180.168.146.187:10212'broker='9999'investor=''pwd=''appid=''auth_code=''proc=''ifinvestor=='':investor=input('invesotr:')pwd=input('password:')appid=input('appid:')auth_code=input('auth code:')proc=input('product info:')tt=TestTrade(front_trade,broker,investor,pwd,appid,auth_code,proc)tt.run()time.sleep(5)# tt.t.ReqOrderInsert('j1905', DirectType.Buy, OffsetType.Open, 2060, 3)time.sleep(3)qq=TestQuote(front_quote,broker,investor,pwd)qq.run()# time.sleep(6)# for inst in tt.t.instruments.values():#     print(inst)input()tt.release()qq.release()input()
Package: pyctpp2
ContentsExample of usageCHANGES0.12.2 (19.01.2012)0.12.1 (19.01.2012)0.12.0 (19.01.2012)0.11.2 (13.09.2011)0.11.1 (30.06.2011)0.11.0 (29.06.2011)0.10.0 (23.05.2011)0.9.10 (17.05.2011)0.9.9 (17.05.2011)0.9.8 (12.05.2011)0.9.7 (28.04.2011)0.9.6 (19.04.2011)0.9.5 (19.04.2011)0.9.4 (19.04.2011)0.9.3 (15.04.2011)0.9.2 (28.03.2011)0.9.1 (13.01.2011)0.9.0 (11.01.2011)Example of usageMake template filehello.tmpl:Foo: <TMPL_var foo.bar>
Spam: <TMPL_var foo[spam]>
Array:
    <TMPL_var array[0].key>
    <TMPL_var array[1]['key']>Create Python script:#!/usr/bin/env python

import pyctpp2

if __name__ == '__main__':
    engine = pyctpp2.Engine()

    template = engine.parse('hello.tmpl')

    result = template.render({
        'foo': { 'bar': 'baz' },
        'spam': 'bar',
        'array': [
            { 'key': 'first' },
            { 'key': 'second' } ]
    })Check output:Foo: baz
Spam: baz
Array:
    first
    secondSeepydoc pyctpp2.Engineandpydoc pyctpp2.Templatefor more information.CHANGES0.12.2 (19.01.2012)Fixed version.py.0.12.1 (19.01.2012)Fixed version.py.0.12.0 (19.01.2012)Updated documentation.Fixed searching CTPP2 library.Fixed support of Python 3.Support CTPP2 library >= 2.8 version only.0.11.2 (13.09.2011)Fixed Restructed text syntax.Updated documentation.Fixed setup.py.Fixed bug with empty language.Updated build without cython.0.11.1 (30.06.2011)Fixed extract method ‘ctpp2’ for Babel.0.11.0 (29.06.2011)Added support of new CTPP2 gettext implementation.Support CTPP2 library >= 2.7 version only.0.10.0 (23.05.2011)Added support of array/hash indirect calls (foo{bar} and foo[bar]).Support CTPP2 library >= 2.6.16 version only.0.9.10 (17.05.2011)Added duplicate information about dicts for HASH_ELEMENT support.0.9.9 (17.05.2011)Fixed HASH_ELEMENT support.0.9.8 (12.05.2011)Fixed extract method ‘ctpp2’ for Babel.0.9.7 (28.04.2011)Fixed support of render params with types.LongType.0.9.6 (19.04.2011)Fixed extract method ‘ctpp2’ for Babel.0.9.5 (19.04.2011)Fixed build with Cython.0.9.4 (19.04.2011)Added extract method ‘ctpp2’ for Babel.0.9.3 (15.04.2011)Added support of i18n.Fixed tests.Changed Template and Engine API.0.9.2 (28.03.2011)Fixed installation by pip.0.9.1 (13.01.2011)Added COPYING.txt.Added support of traversable objects.Some bug fixes.0.9.0 (11.01.2011)Initial release.
Package: pyctrie
Pyctrie===================Fast, pure C [Trie](http://en.wikipedia.org/wiki/Trie) dictionaryFeatures:===================* Very fast. Same performance characteristics with Python's **dict**.* Supports fast **suffix**, **prefix**, **correction** (spell) operations.* Supports Python 2.6 <= x <= 3.4Example:===================It is just like a dict:```pythonimport trieztr = triez.Trie()tr[u"foo"] = 1del trie[u"foo"]```But with extra features:```pythontr[u"foo"] = 1tr.corrections(u"fo"){'foo'}tr[u"foobar"] = 1tr.prefixes(u"foobar"){'foo', 'foobar'}tr.suffixes(u"foo"){'foo', 'foobar'}```Generator support:```pythontr[u"foo"] = 1tr[u"foobar"] = 1for x in tr.iter_suffixes(u"foo"):print(x)foofoobar```License===================MIT
Package: pyctrl
Release 0.4This is a Python library for system and control.We only support Python 3, and are not interested in Python 2 at all.PreliminariesYou will need to have python3, pip3 and numpy installed. On a Debian
based OS (including the Beaglebone Black and Blue) type:sudo apt install python3 python3-pip python3-numpy python3-scipyStarting with version 0.4 there is a web server based on the flask
microframework. Install flask:sudo pip3 install flaskif you would like to use this feature.In order to use this package with the Robotics Cape or the Beaglebone
Blue you will also need to install the rcpy package (github,PyPI).InstallationStarting with version 0.3,pyctrlis available fromPyPI.
Just typesudo pip3 install pyctrlto download and install.Documentation:Online:ManualUser GuideReference
GuidePDF:ManualAuthor:Mauricio C. de Oliveira
Package: pycture
pyctureA Python CLI for obtaining emojis as files and favicons.QuickstartUsage: pycture [OPTIONS] EMOJI

  Get EMOJI as a file or favicon via its CLDR short name.

  Use Unicode 9.0 and Emoji 3.0 as a reference.

Options:
  -o, --output-dir DIRECTORY      The path to the output directory.
                                  [default: (current directory)]

  -p, --pretty                    Pretty-print the SVG code.
  -s, --source [Twemoji|OpenMoji]
                                  The source of the emoji to obtain.
                                  [default: Twemoji]

  --version                       Show the version and exit.
  --help                          Show this message and exit.Tech StackClick(for the interface)Requests(for HTTP requests)defusedxml(for parsing XML/SVG data)Packaging and DevelopmentPoetryMypyisortBlackFlake8flake8-bugbearflake8-comprehensionspep8-namingflake8-builtinsBanditThis CLI was created withCookiecutterand thejoaopalmeiro/cookiecutter-templates/python-cliproject template.Developmentpoetry installpoetry shellNotesclick-contrib(a collection of third-party extensions).click-manpackage (man pages).click-help-colorspackage.click-didyoumeanpackage.click_paramspackage (extra types).OpenMoji.emojipackage.demojipackage.Twemoji.Inflectionpackage.Unicode:Full Emoji List.Full Emoji Modifier Sequences.Emoji Counts.Emoji List, v13.0.unicodedata(Python 3.6 -> Unicode 9.0).Emoji Version 3.0(this emoji version coincided with the release of Unicode 9.0).cookiecutter-poetry(only thepyproject.tomlfile and nopoetry.lockfile).cli.pyorconsole.py.Asyncio integrationissue (Click).asyncclickpackage (fork of Click).XML vulnerabilities.Bandit:B405 complains about any xml.etree.ElementTree import, not just parse-related ones(open) issue.from xml.etree.ElementTree import Element Flagged(open) issue.Error message refers to "defusedxml.defuse_stdlib()" but calling that does not silence bandit(open) issue.defusedxmlprovides alternatives for parsing-related functions.Shell completion(for commands, options, and choice values):Generate theactivation script:_PYCTURE_COMPLETE=source_zsh pycture > pycture-complete.sh.In.bashrcor.zshrc, source the script:. /path/to/pycture-complete.sh.Alternative:eval "$(_PYCTURE_COMPLETE=source_zsh pycture)".aiohttppackage (vs.Requests):"(...) you can picture the session object as a user starting and closing a browser: it wouldn't make sense to do that every time you want to load a new tab." (source)# aiohttpasyncwithaiohttp.ClientSession()assession:asyncwithsession.get("http://python.org")asresponse:print(awaitresponse.text())# vs.# Requestsresponse=requests.get("http://python.org")print(response.text)# orwithrequests.Session()assession:response=session.get("http://python.org")print(response.text)
Package: pycturing
pycturing安装pipinstallpycturing使用frompycturing.utilimportroll_textfrompycturing.textimportTextPycturingtp=TextPycturing()# 随机地生成图像和答案p1='./debug/a.png'r1=tp.save(p1)print(f'result 1:{r1}=>{p1}')# 把答案写到文件名里面r2=roll_text(length=5)p2=f'./debug/{r2}.png'tp.save(p2,text=r2)print(f'result 2:{r2}=>{p2}')
Package: pyctv-taxonomy
PyCTVTheICTVVirus Metadata Resourcecontains an upto date taxonomy of viruses in Excel sheets. We parse that information, and make it available through a Python APIVMRTheICTVmaintains the Virus Metadata Resource, VMR, which is a list of all the viral taxonomies, connections to GenBank and RefSeq, and the associated metadata. This is, as far as I can tell, the most up-to-date list of all viral taxonomies.PyCTV is designed to allow you to easily use the ICTVs VMR data in your own viral taxonomies!When you first run it, you candownloadthe viral taxonomy. But don't worry if you don't download it, because the first time you ask for it, we'll download it for you. The next time you run it, we'll let you know if there is a newer version that you should download. We parse that file, and create VMR objects which contain all the viral metadata resource information. You can query in a few different ways, and we providedictsthat map between GenBank IDs, RefSeq IDs, and the viral taxonomy.Viral taxonomy is generated using the now familiar notion of k__, p__, c__ etc. abbreviations, and you can access the taxonomy as either a single string or tab separated text.The most up-to-date version of the VMR can be found athttps://ictv.global/vmr/current/Example usesDownload a new VMR dataset.This places the VMR file in theVMRfolder in the distribution directory.pyctv.py downloador you can force a new download (if you have an existing file you wish to replace):pyctv.py download --force[Note for Windows users: if you have the Excel file open you may get an error trying to delete it]List all the viral speciesList all the viruses separated by semi-colons:pyctv.py list --semiList all the GenBank accession numbers and the viral speciespyctv.py list --genbankList all the RefSeq accession numbers and the viral speciespyctv.py list --refseqInstallYou canpipinstall PyCTV
Package: pyctx
CTXContext package to use data between function calls, use timers and log it.For example you want have some decision point in your code::frompyctx.contextimportContextctx=Context('APP')x=100y=(x+1)*(x-1)ctx.log.set_data('isEven',y%2)ctx.log.set_data('y',y)ctx.log.start_timer('timer1')importtimetime.sleep(1)ctx.log.stop_timer('timer1')withctx.log.timeit('timer2_context_manager'):time.sleep(5)ctx.finalize()# {'type': 'APP', 'ctxId': '0fdecfe0-067e-4bdd-9920-3b7ed46d8a98', 'startTime': '2019-08-06 09:42:31.222184', 'endTime': '2019-08-06 09:42:37.236861', 'data': {'isEven': 1, 'y': 9999}, 'timers': {'timer1': 1.00633, 'timer2_context_manager': 5.002412}}
Package: pycubelut
pycubelutStop wasting time with sloppy 'gram filters, and usepycubelutto easily add thatprofeel to your images!Quick StartDownload one of many free.cubeLUTs online [1,2]. Then, run the following with your downloaded LUT and image.$ sudo pip3 install pycubelut
$ cubelut F-8700-V2-STD.cube P1040326.jpg -v
INFO: Processing image: P1040326.jpg
INFO: Completed in  6.71sSample ImageOverviewMany professionals apply 3D LUTs to obtain a certain look and feel to their images and videos, which is usually done with proprietary software such as Adobe Photoshop or Final Cut Pro.pycubelutwas created to be the first easy to use, open-source, command-line tool to apply Adobe Cube LUTs to images.In the context of images, a Lookup Table (LUT) is a table describing a transformation of RGB values. There are multiple types of LUTs used in image processing, most common being 1D LUTs and 3D LUTs. A 1D LUT contains an independent transformation for each colour channel, meaning there would be three 1D LUTs defined (for Red, Green, and Blue). However, a 3D LUT has every colour in RGB space directly mapped to another specified colour (ℝ³ -> ℝ³), allowing for powerful and arbitrary transformations, such as greyscale, false colour, and hue shifts. All colour effects, such as gamma, contrast, brightness, etc. can be encoded as a 3D LUT.3D LUTs are essentially grids in the shape of cubes (hence Adobe used.cubefor their LUT file extension). In order to encode a lossless transformation of the complete 8 bit RGB space, 256x256x256 mappings are needed. However, the Cube format allows for interpolation of values from a LUT defined with fewer points, commonly 33x33x33 mappings.UsageWarning: If your input image is in a Log colorspace, make sure to choose a Log LUT!$ cubelut --help
usage: cubelut [-h] [-o OUT] [-g] [-v] [-t [THUMB]] [-j JOBS] LUT INPUT

Tool for applying Adobe Cube LUTs to images

positional arguments:
  LUT                   Cube LUT filename/folder
  INPUT                 input image filename/folder

optional arguments:
  -h, --help            show this help message and exit
  -o OUT, --out OUT     output image folder
  -g, --log             convert to Log before LUT
  -v, --verbose         control verbosity and info messages
  -t [THUMB], --thumb [THUMB]
                        resizes to <= 500px, optionally specify max size
  -j JOBS, --jobs JOBS  number of processes to spawn, defaults to number of
                        logical CPUsMultiple LUTsApplies all.cubefiles in the folder to the image(s)$ cubelut ./my_luts/ P1040326.jpgBatch Image ProcessingProcesses all images in the input folder, and outputs to a specified folder$ cubelut ./my_luts/ ./my_images/ -o ./new_images/Thumbnail ModeResizes images for a huge speedup, useful for multiple LUTs$ cubelut ./my_luts/ P1040326.jpg -t
Package: pycube-parser
Parser forcubexfilescubexfile formatanchor.xmlcontainscnodesmetricsregionssystem_tree_nodeslocationgroupslocationsindex.0the0stands for the metric IDcontainsa header"1"a "1" encoded as aendiannessthe number ofcnodesin thedata.0filea list ofcnodeindicescnode_indices = [c1, c2, ...]data.0containsa headerdata for eachcnode_idincnode_indicescontains metric values for alllocationsto retrieve the value of a particularcnodewithcnode_id, and a specificlocation_idget index ofcnode_indexincnode_indices= the position of thecnode_idincnode_indicesoffset indata.0:cnode_index * num_locations + location_idthelocationsall have incrementinglocation_idsImportant: the list is sorted!not in the order of the XMLNotesRequires at least Python version 3.5Containstypingsas defined inPEP 484Thecubexfiles aretararchives:warning:  ... when extracting them and parsing the extracted0.datafiles using the low-levelIndexParser/DataParserdirectly,
they will create strange behaviourin the most cases, parsing succeeds but some edge-cases (related to endianness?) create problems
Package: pycuber
The cube can be revealed as expanded view in the terminal, so it’s easy
to visualise the cube, just inside the terminal. (Not tested on Windows)>>>importpycuberaspc>>># Create a Cube object>>>mycube=pc.Cube()>>># Do something at the cube.>>>mycube("R U R' U'")>>>print(mycube)We also provided some useful tools to deal with Rubik’s Cube formulae.>>>importpycuberaspc>>># Create a Formula object>>>my_formula=pc.Formula("R U R' U' R' F R2 U' R' U' R U R' F'")>>># Reversing a Formula>>>my_formula.reverse()>>>print(my_formula)>>># Mirroring a Formula>>>myalg.mirror("LR")>>>print(my_formula)FRU' R'URUR2F' R U R U'R'F' L'ULU' L'U' L2 F L'U' L'ULI’ll add some documentations later.