semvec/pypi-packages huggingface dataset:
add-scihub-links 1.0
Add links to sci-hub in the reference section of a scientific article

# Add links to Sci-Hub in the reference section of a scientific article

## Context
Publishers increasingly include hypertext links in the reference section of scientific articles, which is a first step in improving the readability of scientific articles. However most of these references are behind paywall.

This script attemps to add links to Sci-Hub next to the orginal links towards the publisher website. 

At this stage this will only work for PDFs with hypertext links for the references, using the DOI system. This is hopefully what all publishers will be doing in a near future. PLoS and eLIFE have done it systematically for recent articles, so it should work with their articles.

## Install 
Using pip (prefered): `pip install add_scihub_links`

Or clone the repository and run `add_scihub_links.py` (requires pdfrw)

Should work with both Python 2 and 3

## Use
Basic use: `add_scihub_links input.pdf output.pdf`

See full documentation with `add_scihub_links -h`

## Example
See an example of the result [here](examples/Wang2019_links.pdf), obtained from [this article](https://doi.org/10.1371/journal.pbio.3000224).

![Example of sci-hub links inserted in the PDF](examples/example.png)
shellwhat 1.2.0
Submission correctness tests for shell languages

shellwhat
=========

[![Build Status](https://travis-ci.org/datacamp/shellwhat.svg?branch=master)](https://travis-ci.org/datacamp/shellwhat)
[![codecov](https://codecov.io/gh/datacamp/shellwhat/branch/master/graph/badge.svg)](https://codecov.io/gh/datacamp/shellwhat)
[![PyPI version](https://badge.fury.io/py/shellwhat.svg)](https://badge.fury.io/py/shellwhat)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fdatacamp%2Fshellwhat.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fdatacamp%2Fshellwhat?ref=badge_shield)

`shellwhat` enables you to write Submission Correctness Tests (SCTs) for interactive Shell exercises on DataCamp.

- If you are new to teaching on DataCamp, check out https://instructor-support.datacamp.com.
- If you want to learn what SCTs are and how they work, visit [this article](https://instructor-support.datacamp.com/courses/course-development/submission-correctness-tests) specifically.
- For a complete overview of all functionality inside `shellwhat` and articles about what to use when, consult https://shellwhat.readthedocs.io.

Installing
----------

```
pip install shellwhat
```

Development
-----------

By default, the `DummyParser` is used, that does not parse the shell code.
Hence, you can not run tests that need this parser:

```
pytest -m "not osh"
```

If you also want to run these 'parser tests',
there is Dockerfile to parse shell commands with
the [Oil parser](https://github.com/oilshell/oil):

```
# Look in Makefile for details
export SHELLWHAT_PARSER='docker'
make test
```


## License
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fdatacamp%2Fshellwhat.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fdatacamp%2Fshellwhat?ref=badge_large)
avtk 0.1.0
Audio/Video toolkit

AVTK - Python Audio/Video Toolkit
=================================

AVTK provides functionality for inspecting and manipulating audio and video contents in an easy to use manner.

Current version supports working with local files using the `FFmpeg <https://ffmpeg.org/>`_ command line tools
(``ffmpeg`` and ``ffprobe``). Future versions will support various online video providers by wrapping their
respective low-level SDKs.

AVTK aims to make it easy to most of the things you might want to do with audio and video, while allowing you
to use the underlying tools and libraries for edge cases where you need full low-level functionality.

**WARNING:** AVTK is still in beta phase - bugs, missing documentation and frequent API changes are likely. Please
report bugs, suggest use cases and feature ideas, and any other feedback you might have, to GitHub issues.

Resources
---------

* Python Package Index: https://pypi.org/avtk/
* Documentation: https://github.com/senko/avtk/
* Source code: https://github.com/senko/avtk/
* Bug and feature tracker: https://github.com/senko/avtk/issues

Quickstart
----------

Install from Python Package Index::

    pip install avtk

Make sure you have the ``ffmpeg`` and ``ffprobe`` tools available on the system. For detailed installation instructions
please see the :doc:`install` page in the documentation.

Examples
--------

Converting a video::

    >>> from avtk.backends.ffmpeg.shortcuts import convert_to_webm

    >>> convert_to_webm('test-media/video/sintel.mkv', '/tmp/output.webm')

Creating a thumbnail::

    >>> from datetime import timedelta
    >>> from avtk.backends.ffmpeg.shortcuts import get_thumbnail

    >>> png_data = get_thumbnail('test-media/video/sintel.mkv', timedelta(seconds=2))

Inspecting a media file::

    >>> from avtk.backends.ffmpeg.shortcuts import inspect

    >>> info = inspect('test-media/video/sintel.mkv')
    >>> info.format.duration
    datetime.timedelta(seconds=5, microseconds=24000)
    >>> info.format.bit_rate
    2657539
    >>> info.has_video
    True
    >>> info.video_streams[0].codec
    <Codec(name=h264, type=video)>
    >>> info.has_audio
    True
    >>> info.audio_streams[0].codec
    <Codec(name=ac3, type=audio)>
    >>> info.has_subtitles
    True

For more examples, see the :mod:`avtk.backends.ffmpeg.shortcuts` documentation.

Bugs and feature requests
-------------------------

To report a bug or suggest a feature, please use the `GitHub issue tracker <https://github.com/senko/avtk/issues>`_.

When reporting a bug, please include a detailed description, any logging output and exception tracebacks, and
media files (direcly or links to) which caused the problem.

When suggesting a feature, please explain both the feature (how it would work and what it would do) and rationale
(why it is needed, especially if the same can be combined with the existing API).

If contributing code, either bugfixes or feature implementation, please include tests for the new or fixed
functionality, and update documentation accordingly.
asyncio-orvibo 1.19
Asyncio module for Orvibo devices control

# asyncio-orvibo

Control Orvibo devices with Python 3 using asyncio (single threaded with event loop). Currently supports the S20 WiFi Smart Switch and AllOne IR.

## Usage

```python
from asyncio_orvibo import s20
import asyncio
import traceback
async def test_switch_all_off_on():
    dict_devices = await s20.S20.discovery()
    for _,s in dict_devices.items():
        if await s.state_change(0):
            print("State off OK %s",s)
        else:
            print("State off FAIL %s",s)
    await asyncio.sleep(5)
    for _,s in dict_devices.items():
        if await s.state_change(1):
            print("State on OK %s",s)
        else:
            print("State on FAIL %s",s)
loop = asyncio.get_event_loop()
try:
    loop.run_until_complete(test_switch_all_off_on())
except:
    traceback.print_exc()

################################################

from asyncio_orvibo import allone
import asyncio
import traceback
import binascii
async def test_emit(k):
    dict_devices = await allone.AllOne.discovery()
    payload = binascii.unhexlify(k)
    for _,a in dict_devices.items():
        rv = await a.emit_ir(payload)
        if rv:
            print("Emit OK %s %s",a,binascii.hexlify(rv).decode('utf-8'))
        else:
            print("Emit failed")
loop = asyncio.get_event_loop()
try:
    loop.run_until_complete(test_emit('00000000a801000000000000000098018e11951127029b0625029906270299062702380227023a0225023802270238022d023202270299062702990627029806270238022702380227023802270238022802370227023802270238022702980627023802240245021c02380227023802270238022702980627029c0623023802270298062702990627029b062502990627029906270220b7a1119d11270299062702990628029b06250238022702380227023802270238022702380227029906270299062702990627023802270238022a0234022702380227023802260238022702380226029a06260238022602380226023802260241021e02380227029b0624029906270238022702980627029b0625029906270299062702990629021db79f11a2112502990627029b0625029906270238022702380227023802270238022a02350227029906270299062702990628023702260238022702380227023802270238022702380226023b02240299062702380226023802270238022602380227023c0223029906270299062702380226029b062402990627029906270299062802980627020000'))
except:
    traceback.print_exc()
```

## Contributions

Pull requests are welcome. Possible areas for improvement:

* Additional Orvibo devices (CT10 for example, I have reverse engineered this device I only need time to write the code).
* Expand S20 functions: Timers, configuration, etc

## Disclaimer

Not affiliated with Shenzhen Orvibo Electronics Co., Ltd.
gabia-sms-python 1.0.4
Send SMS messages to mobile devices through GABIA SMS api.

===========================
Gabia SMS module for Python
===========================

Python 2 & 3 compatible

- Source code: `<https://github.com/taylor-kang/gabia-sms-python>`_
- Distribution: `<https://pypi.org/project/gabia-sms-python>`_
- Maintainer: `<https://github.com/taylor-kang>`_

Installation
------------

You can install the library directly from pypi using pip:

.. code-block:: shell

    $ pip install gabia-sms-python

Dependencies
------------

- Python 2.7 or 3.4+

Quickstart
----------
Before api usage, set your Gabia API-ID,API-KEY, SENDER value

.. code-block:: python

    import gabia_sms

    # Set Gabia-sms configure
    gabia_sms.configure(api_id='API_ID', api_key='API_KEY', sender='SENDER')


Send sms message to use shortcut function

.. code-block:: python

    import gabia_sms

    try:
        # Send single SMS
        gabia_sms.send(message='message', receiver='will receive phone number')

    except SMSModuleException:
        print('SMS send failure')

- SMS Types: ['sms', 'lms', 'multi_sms', 'multi_lms']
- Send function returning Tuple(Unique key, Result code)

More usage
----------

.. code-block:: python

    import gabia_sms

    try:
        # Reserve single SMS
        gabia_sms.send(
            message='message',
            receiver='will receive phone number',
            scheduled_time='2018-02-02 22:22:22'
        )

        # if not assign scheduled_time, send immediately
        gabia_sms.send(
            message='message',
            receiver='will receive phone number'
        )

        # Send multiple SMS
        gabia_sms.send(message='message', receiver=['phone number', '...'])
        gabia_sms.send(message='message', receiver=('phone number', '...'))

        # Reserve multiple SMS
        gabia_sms.send(
            message='message',
            receiver=['phone number', '...'],
            scheduled_time='2018-02-02 22:22:22'
        )

        # Cancel reservation
        gabia_sms.cancel_reservation('Unique key', 'SMS type')

        # Request result code
        gabia_sms.get_send_result('Unique key')

    except SMSModuleException:
        print('SMS send failure')


Advanced usage
--------------
Inherit SMS class, override post_sent_sms / before_send_sms

.. code-block:: python

    import gabia_sms

    class AdvancedSMSModule(gabia_sms.GabiaSMS):

      def post_sms_sent(self, param, *args, **kwargs):
         # ... Do what you need

      def before_send_sms(self, param, *args, **kwargs):
         # ... Do what you need

    AdvancedSMSModule.send(message='message', receiver='will receive phone number')

or Use SingletonClass

.. code-block:: python

    import gabia_sms

    class AdvancedSMSModule(gabia_sms.SingletonGabiaSMS):
        # ...
        pass

Acknowledgements
--------------
Thanks `https://github.com/athenaslab/gabia-sms-Django` for gabia-sms-Django version