Skip to main content

this is flarebrow package

Project description

flaretool

flaretool is flarebrow Library.

License python CodeSize version ReleaseDate build Coverage Downloads

API Doc

Attention

This library is under development and may exhibit unexpected behavior. New features will be released soon. Please stay tuned.

install

pip install flaretool

NetTool usage

NetTool Usage Document

NetTool Examples of usage

from flaretool import nettool

# 指定されたIPアドレスの情報を取得する例
ip_info = nettool.get_global_ipaddr_info("192.168.0.1")
print("ip:", ip_info.ipaddr)
print("hostname:", ip_info.hostname)
print("country:", ip_info.country)
# 出力例:
# ip: 192.168.0.1
# hostname: sample.com
# country: earth

# ドメイン名からIPアドレスを取得する例
ip_address = nettool.lookup_ip("example.com")
print(ip_address)  # 123.456.789.001

# IPアドレスからドメイン名を取得する例
domain_name = nettool.lookup_domain("1.1.1.1")
print(domain_name)  # one.one.one.one

# 指定されたIPアドレスが指定されたネットワークに属しているかどうかを判定する例
allowed_networks = ["192.168.0.0/24", "10.0.0.0/16"]
is_allowed = nettool.is_ip_in_allowed_networks(
    "192.168.0.100", allowed_networks)
print(is_allowed)  # True

# 指定されたドメイン名が存在するかどうかを判定する例
domain_exists = nettool.domain_exists("example.com")
print(domain_exists)  # True

# 日本のIPアドレスのリストを取得する例
japan_ips = nettool.get_japanip_list()
print(japan_ips)

# 指定されたアドレスが日本のIPアドレスか確認する例
is_japan = nettool.is_japan_ip("203.0.113.1")
print(is_japan)  # False

# 日本語を含むドメインをpunycodeに変換する例
puny_info = nettool.get_puny_code("日本語ドメイン.jp")
print("originalvalue:", puny_info.originalvalue)
print("encodevalue:", puny_info.encodevalue)
print("decodevalue:", puny_info.decodevalue)
# 出力例:
# originalvalue: 日本語ドメイン.jp
# encodevalue: xn--eckwd4c7c5976acvb2w6i.jp
# decodevalue: 日本語ドメイン.jp

# 特定のユーザーエージェントでスクレイピング可否を確認する例
url = "http://example.com/page.html"
user_agent = "MyScraperBot"
allowed = nettool.is_scraping_allowed(url, user_agent) # user_agentはオプション引数
if allowed:
    print(f"{url} はユーザーエージェント '{user_agent}' でのスクレイピングが許可されています。")
else:
    print(f"{url} はユーザーエージェント '{user_agent}' でのスクレイピングが禁止されています。")

NetTool Command Examples of usage

flaretool nettool get_global_ipaddr_info
# usage
# flaretool nettool {FunctionName} [args...]

All methods within NetTool can be executed as commands.

Help Command

flaretool nettool -h

String utills usage

String Utills Usage Document

from flaretool import utills
from flaretool.utills import ConversionMode

# 文字列変換
# 半角
value = "1234567896789"
result = utills.convert_value(value)
print(result)  # "1234567896789"

# 全角
value = "Hello"
result = utills.convert_value(value, ConversionMode.FULL_WIDTH)
print(result)  # "Hello"

# 文字列のみ半角
value = "ABCabc123"
result = utills.convert_value(
    value, ascii=True, digit=False, kana=False)
print(result)  # "ABCabc123"

# 小文字
value = "ABCabc"
result = utills.convert_value(
    value, ConversionMode.LOWER)
print(result)  # "abcabc"

# 大文字
value = "ABCabc"
result = utills.convert_value(
    value, ConversionMode.UPPER)
print(result)  # "ABCABC"

JapaneseHoliday Examples of usage

Holiday Usage Document

from flaretool.holiday import JapaneseHolidays
import datetime

# JapaneseHolidaysクラスのインスタンスを作成
holidays = JapaneseHolidays()

# 特定の日付が祝日かどうかを判定
date = datetime.date(2023, 1, 1)
is_holiday = holidays.get_holiday_name(date)
print(is_holiday)  # "元日" が出力される

# 特定の期間内の祝日一覧を取得
start_date = datetime.date(2023, 1, 1)
end_date = datetime.date(2023, 12, 31)
holiday_list = holidays.get_holidays_in_range(start_date, end_date)
for holiday in holiday_list:
    print(holiday)
# 出力例:
# ("元日", datetime.date(2023, 1, 1))
# ("元日(振替休日)", datetime.date(2023, 1, 2))
# ("成人の日", datetime.date(2023, 1, 9))
# ("建国記念の日", datetime.date(2023, 2, 11))
# ...

# 特定期間内の営業日のリストを取得
business_days = holidays.get_business_date_range(start_date, end_date)
for business_day in business_days:
    print(business_day)
# 出力例:
# 2023-01-03
# 2023-01-04
# 2023-01-05
# ...

Decorator Usage

from flaretool.errors import FlareToolNetworkError
from flaretool.decorators import network_required, retry

# ネットワーク接続を必須とするデコレーター
@network_required
def network_access(url):
    # ネットワークに接続されている場合に実行する処理
    response = requests.get(url)
    return response.json()

def main():
    try:
        network_access()
    except FlareToolNetworkError:
        # ネットワークに接続されていない場合の処理
        pass

# 例外が発生した場合にリトライを行うデコレーター
@retry(max_attempts=3, delay=2) # 2秒毎に3回までリトライ
def example_function():
    pass

Flarebrow Service

There are the following services available:

  1. Short URL service: This service allows you to shorten URLs.
  2. DDNS (Dynamic DNS) service: This service provides Dynamic DNS functionality.

To use this class, you need to set up an API key.

Configuration API Key

The library you are using relies on an API key to communicate with an external service. To securely store the API key, it needs to be defined either as an environment variable or in a .env file or script setting. Please follow the instructions below:

Using an script setting:

import flaretool
flaretool.api_key = "your_api_key_here"

Using an environment variable:

Set the API key as an environment variable using the following variable name:

  • API_KEY

Example of defining an environment variable (Linux/macOS):

export API_KEY=your_api_key_here

Example of defining an environment variable (Windows):

set API_KEY=your_api_key_here

Using a .env file:

Create a .env file in the root directory of your project and define the API key as follows:

API_KEY=your_api_key_here

The library will read the API key from the .env file.

You need to log in to the external service's account to obtain an API key. Be careful not to share your API key with others, and avoid committing the .env file to a public version control system.

Please refer to the documentation of the library you are using to find the specific instructions for setting the API key and the exact name of the environment variable.

ShortURL Service Usage

ShortURL Usage Document

from flaretool.shorturl import ShortUrlService
shorturl = ShortUrlService()

# 新規登録
result = shorturl.create_short_url("https://example.com")
print("ShortLink:", result.link)   # https://○○○/○○○
print("OriginalURL:", result.url)  # https://example.com

# 情報取得
result = shorturl.get_short_url_info_list(result.id)[0]
print("ShortLink:", result.link)   # https://○○○/○○○
print("OriginalURL:", result.url)  # https://example.com

# 更新
result.url = "https://example.com/sample"
result = shorturl.update_short_url(result)
print("ShortLink:", result.link)   # https://○○○/○○○
print("OriginalURL:", result.url)  # https://example.com/sample

# 削除
shorturl.delete_short_url(result)

Dynamic DNS Service Usage

Dynamic DNS Usage Document

from flaretool.ddns import DdnsService
service = DdnsService()
info = service.update_ddns("example", "192.168.0.100")
print(info.status)    # successful
print(info.currentIp) # 192.168.0.99
print(info.updateIp)  # 192.168.0.100
print(info.domain)    # example.○○○.○○

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

flaretool-0.1.26.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

flaretool-0.1.26-py3-none-any.whl (29.2 kB view details)

Uploaded Python 3

File details

Details for the file flaretool-0.1.26.tar.gz.

File metadata

  • Download URL: flaretool-0.1.26.tar.gz
  • Upload date:
  • Size: 26.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for flaretool-0.1.26.tar.gz
Algorithm Hash digest
SHA256 cf71840ac1346b6c9aca48a5e5e24aecd74233e4539a346125dbc789ffc087d1
MD5 fa73f193dc354f263e23cd36e78f5516
BLAKE2b-256 62a30294b705325838fe57641aa80247100a2baa763f5164871244dd2a960e82

See more details on using hashes here.

File details

Details for the file flaretool-0.1.26-py3-none-any.whl.

File metadata

  • Download URL: flaretool-0.1.26-py3-none-any.whl
  • Upload date:
  • Size: 29.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for flaretool-0.1.26-py3-none-any.whl
Algorithm Hash digest
SHA256 4d3fdd81618168396d283e5f14593270e37067dfb2e9313e5b211640bb90c057
MD5 9f74a0c053f0bee4580d98b040e93d45
BLAKE2b-256 2a2fdb2b61e612d1b391194d4e23976614835ada061cd489ae82f809e1754511

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