Skip to main content

Converts news sources into human-friendly labels

Project description

Source Label Map

Converts news sources into human-friendly labels

Quickstart

Installation

Install the package with pip:

pip install -U bilbyai-source-label-map

Usage

Using get_source_labels directly

from bilbyai.source_label_map import get_source_labels

get_source_labels("ben")
# 'Beijing Evening News'

get_source_labels(["gmwnews", "ben"]) 
# ['Enlightenment Daily', 'Beijing Evening News']

# Since the key 'cannot-be-found' is not in the dictionary, it returns the original input.
get_source_labels("cannot-be-found")
get_source_labels("cannot-be-found", when_not_found="preserve") # this is the default.
# 'cannot-be-found'

# When the option is set to 'set_none', the function returns None when the key is not found.
get_source_labels("cannot-be-found", when_not_found="set_none")
# None

# When the option is set to 'set_unknown', the function returns the string "unknown".
get_source_labels("cannot-be-found", when_not_found="set_unknown") 
# 'unknown'

# When the option is set to 'raise_error', the function raises a ValueError.
get_source_labels("ben", when_not_found="raise_error") 
# raises ValueError

Using get_source_labels with DataFrames

import pandas as pd
from bilbyai.source_label_map import get_source_labels

df = pd.DataFrame(
    {
        "source": [
            "gmwnews",
            "ben",
            "cannot-be-found",
            "zqrb",
        ]
    }
)

# Option A: using list comprehension
df["source_label"] = get_source_labels(df["source"])

# Option B: using apply
df["source_label"] = df["source"].apply(get_source_labels)

df["source_label"]
# Outputs: 
# 0     Enlightenment Daily
# 1    Beijing Evening News
# 2         cannot-be-found
# 3        Securities Daily
# Name: source_label, dtype: object

Function Specs

Get source labels for a list of inputs.

Args

source (str | Iterable[str]): The string or list of strings to get source labels for.

when_not_found: The action to take when a source label is not found. Set to "preserve_source_name" by default.

  • "preserve": Preserve the source name as the source label.
  • "set_none": Set the source label to None.
  • "set_unknown": Set the source label to "unknown".
  • "raise_error": Raise an error if a source label is not found.

source_label_dict: A dictionary mapping source names to source labels. Set this value to override the default source label dictionary. It should be a dictionary mapping source names to source labels, like this:

source_label_dict = {
    "gmwnews": "Enlightenment Daily",
    "sina_news": "Sina News",
    "xueqiu": "Xueqiu (Snowball Finance)",
    "peoplenews": "People's Daily",
}

Returns

A list of source labels for the inputs.

Raises

ValueError: If the when_not_found value is not recognized. ValueError: If the inputs are not a string or iterable of strings. ValueError: If when_not_found is set to "raise_error" and a source label is not found.

The project owner is @leetdavid.

Development

If not already in a virtual environement, create and use one. Read about it in the Python documentation: venv — Creation of virtual environments.

python3 -m venv .venv
source .venv/bin/activate

Install the pinned pip version:

pip install -r $(git rev-parse --show-toplevel)/pip-requirements.txt

Finally, install the dependencies:

pip install -r $(git rev-parse --show-toplevel)/dev-requirements.txt -r requirements.txt

Testing

Execute tests from the library's folder (after having loaded the virtual environment, see above) as follows:

python3 -m pytest tests/

Execute the library's CI locally with act as follows:

act -j ci-libs-source_label_map

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bilbyai_source_label_map-0.2.7.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

bilbyai_source_label_map-0.2.7-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file bilbyai_source_label_map-0.2.7.tar.gz.

File metadata

File hashes

Hashes for bilbyai_source_label_map-0.2.7.tar.gz
Algorithm Hash digest
SHA256 5e13f7afffb66368461b40f9dca7f803349a28be57d05347298f422d9aa567e8
MD5 32a3dbcf64b79bf73ab10bb2ae8818f4
BLAKE2b-256 2f1fb1da3cff4995b435756c07868ca2f9384f623675975cec24821291695062

See more details on using hashes here.

File details

Details for the file bilbyai_source_label_map-0.2.7-py3-none-any.whl.

File metadata

File hashes

Hashes for bilbyai_source_label_map-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 4f1e6c64b35643043a8fb1aae0a4b82828b2458a7a54b2a202a117568dec78dd
MD5 9e10b90a9271a4ac43526ba78c90ab52
BLAKE2b-256 b106ba3eb6d81b203deb85a38da487f255e54f2a3d2654c39b3fc15cef11f395

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page