Saravanan666/pypi-org huggingface dataset:
Package: extensible-splines
Extensible SplinesPython Spline Interpolation. Interactive plot for quick testing of new spline kernels or control point usage.Why?If you look at the source ofextensible_splines/splines.pyyou will notice that the most commonly used varieties of spline can be defined with only one or two of four possible overloads or attribute definitions relative to the base class.The kernel itself. That is, the square matrix by which we will multiply the powers of the parameter--in the form of a vector.The scaling factor.  This defaults to 1.0, but supplying a value on the open unit interval is fine.Any filter on the segments themselves.How to transform the knots. In the case of the Hermite spline, this is p0, (δx,δy), p2, (δx,δy).  Points p0 and p2 are unchanged, but p1 and p3 are tranformed to relative offsets from p0 and p2, respectively.Installationpip install extensible-splinesUsageCreate an instance ofSplineMatrixFor example:my_kernel = SplineMatrix(np.array([[1, 0, 0, 0],[0, 1, 0, 0],[-3, -2, 3, -1],[2, 1, -2, 1]],float))Define a Subclass ofBaseSplineThis can be as simple as (1) defining the abstract methods with super calls and (2) passing the kernel to the base constructor.class MySpline(BaseSpline):
    def __init__(self) -> None:
        super().__init__(my_kernel)
    
    def filter_segments(self, raw_segments: Iterable[Tuple[Tuple[int, int]]]):
        return super().filter_segments(raw_segments)

    def transform_control_points(self, points: Tuple[Tuple[int, int]]) -> np.ndarray:
        return super().transform_control_points(points)Notice that other than super() calls and type hinting, the kernel is the only aspect of the type definition to be handled above.Test the New Spline Interactively# Kernel instance and Spline class go here
# ....
##

def main():
    editor = interactive.SplineEditor(MySpline())
    editor.init_figure(caption='Testing New Splines')


if __name__ == '__main__':
    main()
Package: extension
Extension:information_source: OverviewExtensionis a collection of useful functions for the Python programming language.
It is available to everyone under theGNU General Public License v3.0.If you need help, please refer to thewiki.:floppy_disk: Installationgitclone-bfeature/add_functions_from_openwikihttps://github.com/yannickkirschen/extensioncdextension
python3.xsetup.pyinstall:car: ContributingThere are many ways in which you can participate in the project, for example:Submitbugs and feature requeststo help me improve VaderReviewsource code changes:warning: Coding guidelinesI am followingPEP 8in all of my projects and I would ask you to do the same :smile:.Please respect myCode of Conduct:v:.Please also consider my notes aboutbranching.:page_facing_up: LicenseCopyright (c) 2019, Yannick Kirschen, All rights reserved.
Licensed under theGNU GPL3.
Happy forking :fork_and_knife:
Package: extension-custom-menu
extension-custom-menuCustom menu for jupyter labRequirementsJupyterLab >= 3.0Installpipinstallextension-custom-menuContributingDevelopment installNote: You will need NodeJS to build the extension package.Thejlpmcommand is JupyterLab's pinned version ofyarnthat is installed with JupyterLab. You may useyarnornpmin lieu ofjlpmbelow.# Clone the repo to your local environment# Change directory to the extension-custom-menu directory# Install package in development modepipinstall-e.# Link your development version of the extension with JupyterLabjupyterlabextensiondevelop.--overwrite# Rebuild extension Typescript source after making changesjlpmrunbuildYou can watch the source directory and run JupyterLab at the same time in different terminals to watch for changes in the extension's source and automatically rebuild the extension.# Watch the source directory in one terminal, automatically rebuilding when neededjlpmrunwatch# Run JupyterLab in another terminaljupyterlabWith the watch command running, every saved change will immediately be built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).By default, thejlpm run buildcommand generates the source maps for this extension to make it easier to debug using the browser dev tools. To also generate source maps for the JupyterLab core extensions, you can run the following command:jupyterlabbuild--minimize=FalseUninstallpipuninstallextension-custom-menu
Package: extension-manifest-converter
Extension Manifest ConverterOriginal(~2021):GoogleChromeLabs/extension-manifest-converterExtension Manifest Converter is an open source tool that helps convert existing Chrome extensions to
Manifest V3. Use it to convert an entire directory, extension zip file, or just a manifest.json
file. All expected changes are applied to manifest.json.FeaturesPerforms conversions onunpacked extension directorieszip files containing an extensionmanifest.jsonGeneral manifest.json conversionsUpdatesmanifest_versionfieldConverts between host permissions declared inpermissionsoroptional_permissionsin MV2 andhost_permissionsin MV3Converts between acontent_security_policystring in MV2 andcontent_security_policyobject
withextension_pagesandsandboxproperties in MV3Converts betweenbackground.scriptsin MV2 and background service workersbackground.service_workerin MV3Scripting API conversionsConvertschrome.tabs.executeScriptin MV2 tochrome.scripting.executeScriptin MV3. If
necessary, also addsscriptingto thepermissionsarray in manifest.json.Convertschrome.tabs.insertCSSin Mv2 tochrome.scripting.insertCSSin MV3. If necessary,
also addsscriptingto thepermissionsarray in manifest.json.Action API conversionsConverts calls tochrome.browserActionandchrome.pageActionin MV2 intochrome.actionin
MV3Convertsbrowser_actionandpage_actionmanifest entries in MV2 intoactionin MV3LimitationsThis tool aims to simplify the MV3 conversion; it does not fully automate the process. Only search
and replace changes are applied to.jsfiles.This tool does not:update any service worker code that relies on a DOMInstallationTo use this tool, you'll need to set it up by following the steps below.Make sure Python 3 is installed.python3--versionIf you don't see a version number, follow your OS's guidance to install Python 3 or visithttps://www.python.org/downloads/to download a recent release.Installemccommand.pipinstallgit+https://github.com/eggplants/extension-manifest-converter# orpipinstallextension-manifest-converterExecute the test command.emcThe tool should log basic usage information to the console.UsageConvert a directoryemcdir/path/Convert a manifest fileemcmanifest.jsonConvert a .zip fileemcextension.zipLicenseApache 2.0This is not an official Google product.
Package: extensionNamer
# Extension NamerPython module that returns the name of an extension from a file path, extension or file name.
This module can used in cases like:File Management: You can use the script to automatically retrieve and display the full names of file extensions when managing files or working with file systems. This can be helpful when organizing, renaming, or categorizing files.Data Processing: If you’re working with a large dataset that includes file extensions, the script can assist in providing meaningful information about each file extension. It can be used to enrich the dataset by adding the full names of the extensions for better analysis or reporting.User Interfaces: When building a user interface that involves file handling, you can incorporate the script to display user-friendly names for file extensions. This can enhance the user experience by providing clear and recognizable information about the files being accessed or manipulated.File Conversion Tools: If you’re developing a file conversion tool, the script can help provide a user-friendly interface by displaying the full names of the source and target file extensions. This can assist users in selecting the appropriate file formats for conversion.File Upload/Download Services: When building a file upload or download service, the script can be utilized to display the full names of the uploaded or downloaded files. This can help users easily identify the file types they are working with.These are just a few examples of how you can utilize a script that incorporates the extension name JSON file. The script can be customized and integrated into various applications or workflows depending on your specific needs.## ContributingIf you want to contribute to this project, please read the [CONTRIBUTING.md](CONTRIBUTING.md) file.
Package: extension-swap
nopeswap file extension to nope and back (default to tf for terraform files).dependenciespython3usage$ nope filename.tf# change filename.tf to filename.nope$ nope filename.nope# change filename.nope to filename.tf$ nope anotherfile.nope -x py# use custom extension flag and change anotherfile.nope to anotherfile.pyinstall$ pip install extension-swap
Package: extensiveautomation-agent
ExtensiveAutomation Agentagentfor the extensive automation server.Table of contentsAgent InstallationPyPI packageSource codeInstall pluginsAgent DeploymentGenerate tokenRunning agentAgent InstallationAbout agentsAgents enable  to execute remotely your workflow. It's can be useful on some cases
to run them from different machine that your extensive automation server.PyPI packageRun the following commandpython3-mpipinstallextensiveautomation_agentType the following command on your shell to start the serverextensiveautomation_agent--help
Usage:extensiveautomation_agent.py[options]Options:
-h,--helpshowthishelpmessageandexit--verboseVerbosemode
--remote=REMOTEServerhostaddress(default=127.0.0.1)--port=PORTServerport(optionaldefault=8083)--token=TOKENTokenagent
--proxy=PROXYProxyaddress:port(optional)The next step is to install one or morepluginsSource codeClone this repository on your linux servergitclonehttps://github.com/ExtensiveAutomation/extensiveautomation-agent.gitcdextensiveautomation-agent/Show usage documentation.cdsrc/
python3extensiveautomation_agent.py--helpThe next step is to install one or morepluginsInstall pluginsBy default the agent binary comes without plugins so you need
to install them one by one according to your needs.
The installation can be done with thepipcommand.Take a look to the table below to see the correspondence
between the agents plugins you want to use and the plugin to deploy on server side too.Agent PluginsDescriptionServer Plugins (must have)curlsend http requests and analyze http responsesplugin-websshcommunicate with remote server through SSHplugin-cliselenium3interact with a selenium serverplugin-guisikulixrun sikulix commandsplugin-guiAgent DeploymentGenerate tokenA token is mandatory to connect a remote agent to your automation server.Connect on your automation serverExecutes the following commandextensiveautomation--generate-tokenagent01.curl
agent01.curl0bb2705c-9860-445b-b0fc-44b552476cb3Save the token generated and reload the serverextensiveautomation--reloadRunning agentRunning agent is easy but beforeyou must install the good plugin according to your needsgenerate a token for your agentregister then on the serverAfter that you can execute the following command:extensiveautomation_agent--remote=10.0.0.100--token=13ae34f7-e2f6-40b6-9c87-6c275423127e--curl2020-07-2610:28:09,513startingagentcurl...2020-07-2610:28:09,877agentregistrationsuccessful
Package: extensiveautomation-agent-plugin-curl
CURL plugin for ExtensiveAutomation AgentInstalling from pypiRun the following commandpipinstallextensiveautomation_agent_plugin_curl(Optional) only on Linux, you must also install thecurlcommandyuminstallcurlNow you can deploy this plugin with the option--webextensiveautomation_agent--remote=[your_ea_ip]--name=curl01--web
Package: extensiveautomation-plugin-cli
CLI plugin for ExtensiveAutomation serverThis plugin enable to interact with remote system throught the SSH protocol.Table of contentsInstalling from pypiInstalling from sourceAbout actionsssh/send_commands.ymlssh/send_expect.ymlAbout workflowsssh/send_commands.ymlssh/send_expect.ymlInstalling from pypiRun the following commandpip install extensiveautomation_plugin_cliExecute the following command to take in account this new plugin./extensiveautomation --reloadSamples are deployed on data storage.Installing from sourceClone the following repositorygit clone https://github.com/ExtensiveAutomation/extensiveautomation-plugin-cli.git
 cd extensiveautomation-plugin-cli/src/ea/Copy the foldersutadaptersin the source code server and overwrite-itcp -rf sutadapters/ /<install_path_project>/src/ea/Copy the foldervarin the source code server/ and overwrite-itcp -rf var/ /<install_path_project>/src/ea/Finally execute the following command to install depandenciescd /<install_path_project>/src/
 python3 extensiveautomation.py --install-adapter CLI
 python3 extensiveautomation.py --reloadAbout actionsssh/send_commands.ymlSend ssh commands on one or severals hosts.Parameter(s):ssh-commands (text): bash commands-name:ssh-commandsvalue:|-echo "hello world" >> /var/log/messagesecho "hola mondu" >> /var/log/messagesssh-hosts (list): ssh remote addresses-name:ssh-hostsvalue:-ssh-host:10.0.0.55ssh-login:rootssh-password:bonjouragent (text): agent name to use-name:ssh-agentvalue:agent02.sshssh/send_expect.ymlSend ssh commands on one or severals hosts and expect outputs.Parameter(s):ssh-commands (text): bash commands-name:ssh-commandsvalue:|-# get hostnameuname -n.*\n[!CAPTURE:MACHINE_HOSTNAME:]\n.*ssh-hosts (dict): ssh remote addresses-name:ssh-hostsvalue:-ssh-host:10.0.0.55ssh-login:rootssh-password:bonjouragent (text): agent name to use-name:ssh-agentvalue:agent02.sshAbout workflowsssh/send_commands.ymlThis worflow show how to usesshactions.ssh/send_expect.ymlThis worflow show how to usesshactions.
Package: extensiveautomation-plugin-gui
GUI plugin for ExtensiveAutomation serverThis plugin enable to interact with user interface
Selenium, sikulix or adb for android mobile are used to do that.Table of contentsInstalling from pypiInstalling from sourceAbout actionsSeleniumselenium/openbrowser.ymlselenium/closebrowser.ymlselenium/typetext.ymlselenium/waitelement.ymlselenium/clickelement.ymlSikulixsikulix/run_code.ymlsikulix/type_path.ymlsikulix/type_shortcut.ymlsikulix/type_text.ymlsikulix/get_text_clipboard.ymlAbout workflowsSeleniumselenium/google_search.ymlselenium/google_create_account.ymlSikulixsikulix/keyboard.ymlInstalling from pypiRun the following commandpip install extensiveautomation_plugin_guiExecute the following command to take in account this new plugin./extensiveautomation --reloadSamples are deployed on data storageInstalling from sourceClone the following repositorygit clone https://github.com/ExtensiveAutomation/extensiveautomation-plugin-gui.gitCopy the foldersutadaptersto /home/extensiveautomation/ and overwrite-itcp -rf sutadapters /home/extensiveautomation/Copy the foldervarto /home/extensiveautomation/ and overwrite-itcp -rf var /home/extensiveautomation/Finally execute the following command to install depandenciescd /home/extensiveautomation/
 python3 extensiveautomation.py --install-adapter GUI
 python3 extensiveautomation.py --reloadAbout actionsSeleniumselenium/openbrowser.ymlOpen a browser like firefox or chromeParameter(s):agent (text): agent nameurl (text): url to loadbrowser (text): type of browser to open (firefox, chrome or edge)selenium/closebrowser.ymlClose the browserParameter(s):agent (text): agent nameselenium/typetext.ymlType text on the html element.Parameter(s):agent (text): agent namexpath (text): xpath expression to find the html elementtext (text): text to send in the elementselenium/waitelement.ymlWait html element to appear on the page.Parameter(s):agent (text): agent namexpath (text): xpath expression to find the html elementselenium/clickelement.ymlClick on html element.Parameter(s):agent (text): agent namexpath (text): xpath expression to find the html elementSikulixsikulix/run_code.ymlRun sikulix codeParameter(s):agent (text): agent namecode (text): sikulix codesikulix/type_path.ymlType path textParameter(s):agent (text): agent nametext (text): path textselenium/type_text.ymlType textParameter(s):agent (text): agent nametext (text): text to sendsikulix/type_shortcut.ymlSend keyboard shorcutParameter(s):agent (text): agent namekey (text): press on key (KEY_WIN, etc..)other-key (text): press on a second keysikulix/get_text_clipboard.ymlGet the text from the clipboardParameter(s):agent (text): agent namekey-cache (text): save result on cache with the provided nameAbout workflowsSeleniumselenium/google_search.ymlThis workflow shows how to use selenium actionsselenium/google_create_account.ymlThis is a more advanced worflow to use selenium actionsSikulixsikulix/keyboard.ymlThis workflow shows how to use sikulix actions
Package: extensiveautomation-plugin-web
WEB plugin for ExtensiveAutomation serverThis plugin enable to interact with remote web server through the HTTP protocol.
This plugin is based on thecurlcommand.Table of contentsInstalling from pypiInstalling from sourceAbout actionshttp/curl.ymlAbout workflowshttp/httpbin.ymlhttp/jsonplaceholder.ymlInstalling from pypiRun the following commandpip install extensiveautomation_plugin_webExecute the following command to take in account this new plugin./extensiveautomation --reloadSamples are deployed on data storageInstalling from sourceClone the following repositorygit clone https://github.com/ExtensiveAutomation/extensiveautomation-plugin-web.git
 cd extensiveautomation-plugin-web/src/ea/Copy the foldersutadaptersin the source code server and overwrite-itcp -rf sutadapters/ /<install_path_project>/src/ea/Copy the foldervarin the source code server and overwrite-itcp -rf var/ /<install_path_project>/src/ea/Finally execute the following command to install depandenciescd /<install_path_project>/src/
 python3 extensiveautomation.py --install-adapter WEB
 python3 extensiveautomation.py --reloadAbout actionshttp/curl.ymlSend http requests and analysing responses.Parameter(s):agent (text): agent namecurl-body (text): http request bodycurl-headers (text): additional headers for the requestcurl-hosts (text): remote addresscurl-proxy (text): proxy urlcurl-method (text): http methodcurl-options (text): additional options for curlresponse-body-json (dict): expected json in http response with jsonpath expressionresponse-body-text (text): expected string in http responseresponse-body-xml (text): expected xml in http response with xpath expressionresponse-body-xmlns (text): namespacesresponse-code (integer): reponse code expectedresponse-headers (text): list of expected headers in responseresponse-phrase (text): response phrase expectedresponse-version (text): http version expected in responseAbout workflowshttp/httpbin.ymlThis worflow show how to use thecurlaction and
how to extract value from json response.Reuse curl action-description:Get my origin IPfile:Common:actions/http/curl.ymlConfigure parameters-name:curl-hostsvalue:https://httpbin.org/ip-name:response-body-jsonvalue:|origin -> [!CAPTURE:externalip:]http/jsonplaceholder.ymlThis worflow show how to use thecurlaction and POST json data.-name:curl-hostsvalue:https://jsonplaceholder.typicode.com/posts-name:curl-methodvalue:POST-name:curl-headersvalue:|Content-Type: application/json-name:curl-bodyvalue:title:un exemple en françaisbody:bonjouruserId:1
Package: extensiveautomation-server
ExtensiveAutomationPython automation serverCopyrightCopyright (c) 2010-2021  Denis Machardd.machard@gmail.comLicenseMITHomepagehttps://www.extensiveautomation.org/Docshttps://extensiveautomation.readthedocs.io/en/latest/Githubhttps://github.com/ExtensiveAutomationDocker Hubhttps://hub.docker.com/u/extensiveautomationPyPIhttps://pypi.org/project/extensiveautomation-server/Google Usershttps://groups.google.com/group/extensive-automation-usersTwitterhttps://twitter.com/Extensive_AutoExtensiveAutomationenable you to create custom workflows to automate your project.a workflow is the combination of differents actions.an action is individual python code source with enriched parameters.InstallationRun the following commandpython3 -m pip install extensiveautomation_serverType the following command on your shell to start the serverextensiveautomation --start
Package: extented-ws
Extented WebsocketsThe library is based onWebsocketsThe observer-handlers approach is used, like in FastAPI and Aiogram it's allows you to quickly integrate web sockets into the project, and expand the list of requests-responsesInstallationpipinstallextented-wsUsageBy default, the server accepts aJSONmessage of the following format:{"Type":"CalculateRequest","Data":{"numbers":[2,2]}}After that, the server callstriggerfrom theobserver, and that in turn calls allhandlerswhose first argument type name equalsTypeinJSONThe returned object, in turn, will be the answer for the client
When theobserverfinds the desiredhandlers, it calls it by passing arguments:Unpacked object fromDatainJSONThe user received from the authorizationprotocolFor known howcreate_protocolwork see:Authentication,Factoryfromextented_wsimportWebsocketServer,telegram_protocol_factoryserver=WebsocketServer()classCalculateRequest(BaseModel):numbers:List[int]classCalculateResponse(BaseModel):result:int@server.message()asyncdefcalculate_handler(request:CalculateRequest,user:WebAppUser):# user is optional argumentresult=0foriinrequest.numbers:result+=ireturnCalculateResponse(result=result)asyncdefmain()->None:"""telegram_protocol_factory used for create TelegramAuthProtocol instance with bot token"""awaitserver.listen(create_protocol=telegram_protocol_factory(token=TOKEN))if__name__=="__main__":logging.basicConfig(level=logging.INFO,stream=sys.stdout)asyncio.run(main())Also seeEXAMPLE
Package: exterminator
Pest controlBugs are bad, but it's even worse when it happens in production, this is why it is a good idea to document all data possible when a exception occurs.Installingpip3installexterminatorUsageYou have three options.As a decoratorfromexterminatorimportExterminator@Exterminator()defmain_function():# do stuff that might workmain_function()As a context managerfromexterminatorimportExterminatorwithExterminator():# do stuff, you know the thingGloballyfromexterminatorimportExterminatorExterminator().globally()# that's it! now every exception that is not handled will be loogedImportant NoteIf you are going to except all errors the context manager and globally solution wont work for you, the only option for you will be:fromexterminatorimportExterminator@Exterminator()defmain_function():# do stuff that work or nottry:main_function()except:# do some stuff of you own...