Saravanan666/pypi-org huggingface dataset:
Package: shoten
Helper functions to find word trends (i.e. extract tokens, lemmatize and filter).Installationpip/pip3 install-Ugit+https://github.com/adbar/shoten.gitUsageInputTwo possibilities for input data:XML-TEI files as generated bytrafilatura:from shoten import gen_wordlistmyvocab = gen_wordlist(mydir, ['de','en'])TSV-file contaning a word list: word form +TAB+ date (YYYY-MM-DDformat) + possible 3rd column (source)from shoten import load_wordlistmyvocab = load_wordlist(myfile, ['de','en'])Language codes: optional list of languages to be considered for lemmatization, ordered by relevance.ISO 639-1 codes, see thelist of supported languages.Optional argumentmaxdiff: maximum number of days to consider (default: 1000, i.e. going back up to 1000 days from today).Filtersfrom shoten.filters import *hapax_filter(myvocab, freqcount=2): (default frequency: <= 2)shortness_filter(myvocab, threshold=20): length threshold in percent of word lengthsfrequency_filter(myvocab, max_perc=50,min_perc=.001): maximum and minimum frequencies in percentoldest_filter(myvocab, threshold=50): discard the oldest words (threshold in percent)freshness_filter(myvocab, percentage=10): keep the X% freshest wordsngram_filter(myvocab, threshold=90, verbose=False): retains X% words based on character n-gram frequencies; runs out of memory if the vocabulary is too large (8 GB RAM recommended)sources_freqfilter(myvocab, threshold=2): remove words which are only present in less than x sourcessources_filter(myvocab, myset): only keep the words for which the source contains a string listed in the input setwordlist_filter(myvocab, mylist, keep_words=False): keep or discard words present in the input listReduce vocabulary size with a filter:myvocab = oldest_filter(myvocab)They can be chained:myvocab = oldest_filter(shortness_filter(myvocab))Output# print one-by-oneforwordinsorted(myvocab):print(word)# transfer to a listresults=[wforwinmyvocab]CLIshoten--helpAdditional informationShoten= focal point in Japanese (焦点).Project webpage:Webmonitor.
Package: shotfirst
This is just a very simple inotify monitor for “dropbox” style folders. What it
does is you give it a JSON config file and some directories and it will go and
find all the files in the directories and executeshutiloperations on them
(by defaultcopy2which means the file is copied along with the metadata)
to the configured location.For example, with the following configuration file:{
  "image/jpeg, image/gif, image/png": {
    "mask": "%Y/%m/%d",
    "target": "/tmp/foo/pics",
    "handler": "shotfirst.handlers.exif_image_handler"
  },
  "video/webm": {
    "target": "/tmp/foo/videos",
    "operation": "move",
    "mask": "%Y/%m/%d",
    "handler": "shotfirst.handlers.video_handler"
  },
  "application/pdf": {
    "target": "/tmp/foo/docs",
    "handler": "shotfirst.handlers.pdf_handler",
    "mask": "%Y/%m"
  }
}shotfirstwill:Copy all GIF, JPEG, and PNG images found in the given folders to a
directory/tmp/foo/picsand will use the EXIF metadata from the image
to figure out the sub-folder structure (which is year/month/day)Move all the WebM videos in the given folders to a directory named/tmp/foo/videosbased on the video metadata, if available. Otherwise
will fall back to the file system meta data.Copy all PDF files in the given folders to a directory/tmp/foo/docsbased on the PDF metadata if available. Fall back to the file system meta
data if not.
Package: shotman
A simple UI for handling screenshots.InstallationArchLinux:yay install shotman.Others:pip install shotman.SetupYou’ll generally want to bind shotman to some hotkeys. I keep this in my sway
settings:# Screenshots:
# Super+P: Current window
# Super+Shift+p: Select area
# Super+Alt+p Current output
# Super+Ctrl+p Select a window

bindsym Mod4+p       exec shotman active
bindsym Mod4+Shift+p exec shotman area
bindsym Mod4+Mod1+p  exec shotman output
bindsym Mod4+Ctrl+p  exec shotman windowNote: the above supercedes the recommendation given bygrimshot. Make sure you don’t
have both on your config file.I also recommend adding settings to position it on-screen. If you skip this, the window
will show up centred, since Wayland clients cannot control their position:for_window [title="shotman"] move position 30 30It is currently not clear if this application should be exceptional and use a
privileged API for better positioning or not.Usageshotmansaves a screenshot to disk, and then shows a thumbnail and a simple
interface.ActionsYou can execute the same actions with a mouse _or_ keyboard:Done: Exits. The screenshot images remains on disk.Primary Keybinding:Esc.Secundary Keybindings:Ctrl+q,Ctrl+w,q,Ctrl+s.Delete: Deletes the image file and exists immediately.Keybinding:d.Secundary Keybindings:Delete,Ctrl+d.Copy: Copies the screenshot image to the clipboard. See caveats below.Keybinding:Ctrl+C.If there’s a good, lightweight image editor that runs well on Wayland, I’d be happy to
add anEditbutton that opens the screenshot image in it.CaveatsIf you’re not using a clipboard manager, any copied image will be lost after closing
the window.There are plants to keep the application running in the background until it loses the
clipboard handle to work around this.RequirementsThis tool relies ongrimshot. It’s designed for sway, but should work on other
wlroot compositors.PackagingDependencies for this package are Python3, PySide6 and grimshot. ThewaylandQt
plugin should also be installed (e.g.:qt6-wayland).Licenceshotmanis licensed under the ISC licence. See LICENCE for details.
Package: shotp
shOTP - OTP in your shell.shOTP is a program that implements 2FA apps' functionality on your terminal. It keeps itself lightweight.RequirementsPython (This program should works on Python 3.10, 3.8+ is good, no Python 2), withpip.typerandpyotpmodule. This should get installed automatically if you haven't, when install.Installationpython3 -m pip install shotpPlansSeehere.Usage and helppython3 -m shotp --helpThis is an alpha software, thing may break anytime. Use this at your own risk.
Package: shotpointscraper
shot_point_scraper"shot_point_scraper" is a library for scraping shot positions and their information for one game fromUnderstat.Featuresshot_point_scraper supports csv files, excel files, and sql files as output file formats.Requirementpython 3.9beautifulsoup4 4.10.0pandas 1.3.5openpyxl 3.0.9requests 2.27.1lxmlInstallationInstall shot_point_scraper with pip command.pipinstallshotpointscraperUsageCheck the ID of the match you want to retrieve fromUnderstatID You can check the ID of the match in the URL section.(https://understat.com/match/ID)2.In the environment where shot_point_scraper is installed, execute the following commandshotpointscraper3.You will be asked for your ID, so fill in the ID that you just checked.4.When scraping is finished, you will be asked what file you want to create, so enter the file you want to create (csv excel,sql).5.If you select csv or excel, you will be asked for a file name, please enter your file name of choice. (Do not enter the file format, as it will be added automatically.)
The file will then be generated.6.If you choose "sql", you will be asked what format you would like the  shoot position information to be in.
xy: Describe the chute coordinates using two columns, x and y.
point: Write the chute coordinates in one column using commas and parentheses for x and y.example:
xy:xy112.0743.4115.1538.9point:point(112.07,43.4)(115,15,38.9)7.You will be asked for the name of the file to be generated and the name of the database table to be filled in the sql file.
The file will then be generated.NoteI don't test environments under Linux and Windows.For the shoot position information, I use the statbomb type.(0<=x<=120,0<=y<=80)AuthorDaiki AzumaMusashino UniversityTwitter :https://twitter.com/comfused_azumaLicense"shot_point_scraper" is underMIT license.I hope this library will be useful to you.
Thank you!
Package: shot-scraper
shot-scraperA command-line utility for taking automated screenshots of websitesFor background on this project seeshot-scraper: automated screenshots for documentation, built on Playwright.DocumentationFull documentation for shot-scraperTutorial: Automating screenshots for the Datasette documentation using shot-scraperRelease notesGet started with GitHub ActionsTo get started without installing any software, use theshot-scraper-templatetemplate to create your own GitHub repository which takes screenshots of a page usingshot-scraper. SeeInstantly create a GitHub repository to take screenshots of a web pagefor details.Quick installationYou can install theshot-scraperCLI tool usingpip:pip install shot-scraper
# Now install the browser it needs:
shot-scraper installTaking your first screenshotYou can take a screenshot of a web page like this:shot-scraper https://datasette.io/This will create a screenshot in a file calleddatasette-io.png.Many more options are available, seeTaking a screenshotfor details.ExamplesTheshot-scraper-demorepository uses this tool to capture recently spotted owls in El Granada, CA according tothis page, and to  generate an annotated screenshot illustrating a Datasette feature as describedin my blog.TheDatasette Documentationuses screenshots taken byshot-scraperrunning in thesimonw/datasette-screenshotsGitHub repository, described in detail inAutomating screenshots for the Datasette documentation using shot-scraper.Ben Welsh built@newshomepages, a Twitter bot that usesshot-scraperand GitHub Actions to take screenshots of news website homepages and publish them to Twitter. The code for that lives inpalewire/news-homepages.scrape-hacker-news-by-domainusesshot-scraper javascriptto scrape a web page. SeeScraping web pages from the command-line with shot-scraperfor details of how this works.Reuters uses shot-scraper to generate regularly updating data dashboardsfor email newsletters.
Package: shotty
shotty===========================================================Installation------------Installation using pip::pip install shottyUsage-----*Usage instructions here*```pythonfrom shotty import apishotty = api('localhost', '54342a78-e2e8f65f-8040ae5f-5a01fe75-66909b98')``````pythonshotty.get('users') # get all usersshotty.get('users', id='785845fjdfg930459') # get one usershotty.changes('users') # get realtime updates for all users``````pythonshotty.get('projects') # get all projectsp = shotty.get('projects', id='CASINO') # get one projectprint p['paths']['root']``````pythonshotty.get('shots', id='54342a78-e2e8f65f-8040ae5f') # get one shotshots = shotty.get('shots', projectId='CASINO') # get all shots for test projectprint len(shots)print 'shots with client status', len([shot for shot in shots if shot['status'] == 'client'])shotty.changes('shots') # get realtime updates for all shots``````pythonshotty.get('versions', id='54342a78-e2e8f65f-8040ae5f') # get one versionversions = shotty.get('versions', projectId='CASINO') # get all versions for test projectprint 'dailies versions', len([version for version in versions if version['type'] == 'dailies'])shotty.get('versions', shotId='748324hfsd904') # get all versions for one shotshotty.changes('versions') # get realtime updates for all versions```Credits-------*Any credits here*shotty is packaged using seed_... _seed: https://github.com/adamcharnock/seed/
Package: shottycli
shottycli for VFXFeaturesPython 3 supportHow does it work?Shottycmd is a command-line interface for shotty.Installationpip install shottycliLicenseshottycmd is free software under terms of the MIT License.Copyright (C) 2016 by Nikolay Popov,krnk@mail.ruPermission 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 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.
Package: should
shouldBugs:https://github.com/Ralph-Wang/should/issuesMore Details:https://github.com/Ralph-Wang/should/blob/master/README.md安装:pip install should使用方法:fromshouldimportit# 一般的断言it(1).should.be.intit({}).should.be.no.okit(2).should.be.equal(2)it(10).should.be.no.equal(8)it([1,2,3]).should.contain(3)# lambda 版异常断言it(lambda:int('abc')).should.throw(ValueError)it(lambda:int('123')).should.no.throw(ValueError)更多例子请参考testsLicenseThe MIT LicenseChange Logv0.5.4增加 subclassof 接口添加 shouldnt 取反属性v0.5.3增加 count 接口增加 same 接口, 判断是否为同一个对象拆分测试文件v0.5.2小重构, 删除 _flag 属性match/search 支持 list 和 dict. dict 只验证值.contain 支持 contain(v1, v2, v3)v0.5.1修复 #1, 解决自测问题结构化目录, 让代码清晰一点链式调用部分用元类改写less/greater 添加 ‘below/above’ 别名v0.5.0删除原raises接口, 不再支持 with should.raises 语法raises接口改为throw的等价接口key会改变链式调用. 后续值为键所对应的值v0.4.8fixthrow在 2.* 只能接受str的问题如 it(1).should.be.int 的类型断言, 不断言 propertyproper 和 own_proper 增加别名 property 和 own_property增加 properties 和 own_properties. 对对象支持列表式断言增加 keys, 对字典支持列表式断言v0.4.7添加within接口should.py 文件中添加自文档添加proper/own_proper接口v0.4.6fix #2. match 不支持多行添加search接口, 与match等价, 但更贴近 Python re 的接口v0.4.5增加match接口, 进行正则匹配断言增加empty属性, 直接判断容器或序列是否为空只有连接词, be, have 会出现在 Assertion Error 中throw接口支持断言 throw 信息v0.4.4安装失败修复v0.4.3类型断言如it(1).should.be.int支持所有内建类型添加instanceof断言, 支持其它类型或弱类型断言链式调用 ‘be’/’have’ 时, Error 信息正确显示 have 和 be
Package: should-dingus
This modules contains a custom matcher so you can useshould_dslwithDinguscallsA small warning: The | operator hack of should_dsl’s doesn’t really go well with the __or__() of a Dingus.
I think the | hack is nasty, and I’m not sure I likeshould_dslfor it. This is where Ruby seems really pretty to me.You only need to import it>>> from should_dsl import should, should_not
>>> from dingus import Dingus
>>> import should_dinguscallChecks calls on a Dingus>>> stub = Dingus('stub')
>>> def some_function():
...     stub()
...
>>> some_function |should| call(stub)callcan also check that it should be calledonce:>>> def some_function():
...     stub()
...     stub()
...
>>> stub.reset()
>>> some_function |should| call(stub)
>>> stub.reset()
>>> some_function |should| call(stub).once
Traceback (most recent call last):
...
ShouldNotSatisfied: <Dingus stub> was called 2 times, expected 1callcan even check the parameters withwith_params:>>> def some_function():
...     stub(True, kwak='tuut', braat='aap')
...
>>> stub.reset()
>>> some_function |should| call(stub).with_params(True, kwak='tuut', braat='aap')
>>> stub.reset()
>>> some_function |should| call(stub).with_params(True, kwak='tuut')
Traceback (most recent call last):
...
ShouldNotSatisfied: <Dingus stub> has not been called with params (True,) {'kwak': 'tuut'}callwith_paramscan be combined withonce:>>> def some_function():
...     stub(True, kwak='tuut', braat='aap')
...
>>> stub.reset()
>>> some_function |should| call(stub).once.with_params(True, kwak='tuut', braat='aap')
>>> stub.reset()
>>> some_function |should| call(stub).with_params(True, kwak='tuut', braat='aap').once
Package: should_dsl
The goal ofShould-DSLis to write should expectations in Python as clear and readable as possible, using“almost”natural language (limited - sometimes - by the Python language constraints).In order to use this DSL, you need to importshouldandshould_notobjects fromshould_dslmodule.For example:>>> from should_dsl import should

>>> 1 |should| equal_to(1)
>>> 'should' |should| include('oul')
>>> 3 |should| be_into([0, 1, 2])
Traceback (most recent call last):
...
ShouldNotSatisfied: 3 is not into [0, 1, 2]Theequal_tomatcher verifies object equality. If you want to ensure identity, you must usebeas matcher:>>> 2 |should| be(2)A nice example of exceptions would be:>>> def raise_zerodivisionerror():
...     return 1/0
>>> raise_zerodivisionerror |should| throw(ZeroDivisionError)shouldhas a negative version:should_not:>>> from should_dsl import should_not

>>> 2 |should_not| be_into([1, 3, 5])
>>> 'should' |should_not| include('oul')
Traceback (most recent call last):
...
ShouldNotSatisfied: 'should' does include 'oul'
Package: shoulder
shoulderThis package uses a collection of machine learning models to detect anatomic landmarks on 3d models of shoulder bones and also generates patient specific coordinate systems. An stl of the shoulder bone of interest is all that is needed to get started. Currently only implemented for the humerus,  with expansion to the scapula in the future. Landmarks thatshouldercan currently identify on the humerus are:canaltransepicondylar axisbicipital grooveanatomic neckInstallationcompatible with python 3.10 and 3.11pip install shoulderExampleStart by using the example bone stl's located in "tests/test_bones"# pass stl into Humerus
hum = shoulder.Humerus("tests/test_bones/humerus_left.stl")

# apply coordinate sysytem
hum.apply_csys_canal_transepiconylar()

# calculate landmarks
hum.canal.axis()
hum.trans_epiconylar.axis()
hum.anatomic_neck.points()
hum.bicipital_groove.axis()

# calculate metrics
hum.radius_curvature()
hum.neckshaft()
hum.retroversion()

# construct plot from above humeral bone with landmarks and coordinate system
plot = shoulder.Plot(hum)
plot.figure.show()The output of the plot will appear as shown below with landmarks included and transformed from the original CT coordinate system to a coordainte system defined by the canal and transepicondylar axis.ContributingClone the repo, open the cloned folder containing the poetry.lock file, then install the development dependencies using poetry.poetry install --with dev
Package: shournal-to-snakemake
shournal-to-snakemakeTransform a command series observed byshournaltosnakemakerules.shournaltracks read and written files of shell commands. Thus, for
each command the input- and output-section of a snakemake rule
may be generated. Matched file-paths are automatically replaced
in the command string with {input} and {output}.Basic UsageAftershournalis installed, start a new (by shournal observed) shell session. Within that
perform the (shell-based) data analysis of your choice.Once done, from within the same shell-session, generate the snakemake rules byshournal -q --output-format json -sid $SHOURNAL_SESSION_ID | shournal-to-snakemakeToy example$ SHOURNAL_ENABLE
$ echo stuff > foo
$ cat foo > bar
$ shournal -q --output-format json -sid $SHOURNAL_SESSION_ID | shournal-to-snakemake
rule undefined_1:
    output:
        "foo",
    shell:
        # raw: echo stuff > foo
        "echo stuff > {output}"


rule undefined_2:
    input:
        "foo",
    output:
        "bar",
    shell:
        # raw: cat foo > bar
        "cat {input} > {output}"General hintsDon't change the working directory during the workflow.Do not use wildcards or variables (in file-paths), otherwise the files
in the command string cannot be correctly replaced by {input} or {output}.Stick to basic posix shell syntaxInstallationCreate a wheel directly from source by executingpython3 setup.py sdist bdist_wheelInstall the wheel as usual, e.g. bypip3 install --user dist/shournal_to_snakemake-VERSION-*.whlLicenseCopyright © 2020 Tycho Kirchner (see LICENSE)
Package: shoutcast-api
Shoutcast Radio Directory APIA Python module for interacting with the shoutcast radio directory api. For Python >= 3.Getting startedInstallation via pip:$ pip install shoutcast-apiManual installation:$ git clone https://github.com/eadwinCode/shoutcast_api
$ cd shoutcast_api
$ python setup.py installThe module consists of the following sub-modules:stations(docs)genres(docs)Usage:fromshoutcast_apiimportget_stations_by_now_playingresponse=stations.get_stations_by_now_playing(api_key,ct='john legend',limit=100,br=128)Error handlingAll functions may raise exceptions if incorrect parameters are passed or other problems. If it is server-errorAPIExceptionexception will be raised.SHOUTcast API Usage RestrictionsBy using our API, you agree to the following restrictions which are in place to protect the SHOUTcast brand and ServiceMark.Please do not hammer the servers. We request reasonable usage and recommend that you utilize local caching.Do not copy the shoutcast.com design, make your design as original as possible.We reserve the right to revoke access for DevIDs which abuse the system.We have included official logos for your usage below (with more to follow later).API License TermsFor License Terms,here
Package: shoutout
# shoutoutPython jumbo letter printer# Installpip install shoutout# Usage```pythonimport shoutoutshoutout.loud("Hello!!")```<pre>#   #   ####   #       #        ####     ###    ####   #   #      #       #       #    #    ###    ########   ####   #       #       #    #    ##     ###   #   #      #       #       #    ##   #   ####   #####   #####    ####     ##     ##</pre>or you can create an object!```pythonimport shoutoutloud_msg = shoutout.ShoutOut("World!!")print loud_msg```<pre>#       #    ####    #####    #       ####      ###    ####       #   #    #   #    #   #       #    #    ###    ####   #   #   #    #   # ###    #       #    #    ##     ### # # #    #    #   #   #    #       #    ##   #      ####    #    #   #####   ####      ##     ##</pre>
Package: shoutout-py
ShoutoutRealtime messaging with Redis PUB/SUB.Shout-out is designed to work withFastAPI websocket, while running behindGunicornwith multipleUvicorn workers. Where a centralized caching layer (Redis) is required to maintain state (messages) across workers.You can also use Shoutout as a standalone asynchronous application.UsageStandaloneimportasynciofromshoutout.broadcastimportBroadcastbroadcast=Broadcast("redis://localhost:6379")asyncdefmain():awaitbroadcast.connect()asyncwithbroadcast.subscribe("hello")assubscriber:ifsubscriber:awaitbroadcast.publish("hello",message={"channel":"hello","message":"Hello World!"})asyncfor_,msginsubscriber:print(msg)breakif__name__=="__main__":asyncio.run(main())The example above is complete and should run as is.FastAPIfromfastapiimportFastAPI,WebSocketfromfastapi.responsesimportHTMLResponsefromshoutout.broadcastimportBroadcastfromstarlette.concurrencyimportrun_until_first_completebroadcast=Broadcast("redis://localhost:6379")app=FastAPI(on_startup=[broadcast.connect],on_shutdown=[broadcast.disconnect])asyncdefws_receiver(websocket):asyncformessageinwebsocket.iter_text():awaitbroadcast.publish(channel="shout",message={"msg":message})asyncdefws_sender(websocket):asyncwithbroadcast.subscribe(channel="shout")assubscriber:ifsubscriber:asyncfor_,msginsubscriber:awaitwebsocket.send_json(msg)@app.websocket("/ws")asyncdefwebsocket_endpoint(websocket:WebSocket):awaitwebsocket.accept()awaitrun_until_first_complete((ws_receiver,{"websocket":websocket}),(ws_sender,{"websocket":websocket}),)html="""<!DOCTYPE html><html><head><title>Chat</title></head><body><h1>WebSocket Chat</h1><form action="" onsubmit="sendMessage(event)"><input type="text" id="messageText" autocomplete="off"/><button>Send</button></form><ul id='messages'></ul><script>var ws = new WebSocket("ws://localhost:8000/ws");ws.onmessage = function(event) {var messages = document.getElementById('messages')var message = document.createElement('li')var content = document.createTextNode(event.data)message.appendChild(content)messages.appendChild(message)};function sendMessage(event) {var input = document.getElementById("messageText")ws.send(input.value)input.value = ''event.preventDefault()}</script></body></html>"""@app.get("/")asyncdefget():returnHTMLResponse(html)The example above is complete and should run as is.Run it:uvicornmain:app--reload