Saravanan666/pypi-org huggingface dataset:
Package: smartdns
smartdns使用场景smartdns是python3语言编写，smartdns基于小米smartdns二次开发，支持类似Dnspod的D监控功能，能够支持针对不同的dns请求根据配置返回不同的解析结果。smartdns获取dns请求的源IP或者客户端IP（支持edns协议的请求可以获取客户端IP），根据本地的静态IP库获取请求IP的特性，包括所在的国家、省份、城市、ISP等，然后根据我们的调度配置返回解析结果，smartdns的典型使用场景：服务的多机房流量调度，比如电信流量调度到电信机房、联通流量调度到联通机房；用户访问控制，将用户调度到离用户最近或者链路质量最好的节点上。举个简单的例子，我们的一个站点test.test.com同时部署在电信和联通两个机房，该站点在电信机房的ip为1.1.1.1、在联通机房的ip为2.2.2.2，就可以通过smartdns做到该站点域名解析时判断源IP为电信的IP时返回1.1.1.1、判断源IP为联通的IP时返回2.2.2.2，从而达到不同运营商机房流量调度的目的。安装方法安装python-devel以及bzip2包，以centos为例：yum install -y bzip2 python-devel执行pip install smartdns脚本即可完成安装支持的功能支持A、SOA、NS记录的查询，支持DNS forward功能性能在虚拟机2.4G CPU上能够处理1000QPS查询请求，打开debug日志后可以到800QPS。3-5台dns server组成的集群已经能够满足大部分站点的需求。目前我们正在实现和小流量测试go语言实现的smartdns，能够达到3wQPS以上，后续测试稳定后会开源出来，大家敬请期待：）原理smartdns响应dns请求的处理流程如下：IPPool类的初始化和该类中FindIP方法进行解析处理是smartdns中最关键的两个要素，这两个要素在下面详细介绍。其他的特性比如继承twisted中dns相关类并重写处理dns请求的方法、升级twisted代码支持解析和处理edns请求等大家可以通过代码了解。edns知识可以猛戳这里：DNS support edns-client-subnetIPPool初始化ip.csv内容格式如下：200000001, 200000010,中国,陕西,西安,电信其中各个字段含义分别为IP段起始，IP段截止，IP段所属国家，IP段所属省份，IP段所属城市，IP段所属ISPa.yaml配置文件格式：test.test.com:
  ttl: 3600
  default: 5.5.5.5 2.2.2.2
  中国,广东,,联通: 1.1.1.1 3.3.3.1
  中国,广东,,电信: 1.1.1.2 3.3.3.2配置中地域信息的key包括四个字段，分别带有不同的权重：国家：    8省份：	4城市：	2运营商：  1初始化阶段，会生成一个名为iphash的dict，具体数据结构如下图：其中，iphash的key为ip.csv每一条记录的起始IP，value为一个list，list长度为6，list前5个字段分别为以该key为起始IP记录的IP段截止、IP段所属国家、IP段所属省份、IP段所属城市、IP段所属ISP，第六个字段是一个hash，key为a.yaml里面配置的域名，value为长度为2的list，iphash[IP段起始][6][域名1][0]为域名1在该IP段的最优解析，iphash[IP段起始][6][域名1][1]为该最优解析的总权值，该总权值暂时只做参考。iphash初始化过程中最关键的是iphash[IP段起始][6][域名1]的最优解析的计算，最简单直接的方式是直接遍历域名1的所有调度配置，挑选出满足条件且总权值最高的解析，即为最优解析。这种方式记录整个iphash的时间复杂度为O(xyz)，x为ip.csv记录数，y为域名总数量，z为各个域名的调度配置数。为了优化启动速度，优化了寻找最优解析的方法：事先将每个域名调度配置生成一颗树，这棵树是用dict模拟出来的，这样需要最优解的时候就不需要遍历所有调度配置，而是最多检索15次即可找到最优，即时间复杂度为O(15xy)，具体实现参考IPPool的LoadRecord和JoinIP两个方法。有了初始化后的iphash数据结构之后，每次请求处理的时候，只需要定位请求IP处在哪个IP段，找到IP段起始IP，然后从iphash中取出最优解析，取出最优解析的过程是O(1)的。具体流程如下：监控监控配置详见配置目录的monitor.yaml，内容如下：test.test.cn:
  interval: 30
  frequency: 3
  url: https://www.baidu.com分别代表监控域名、监控周期(秒)、容错次数、监控url，监控失败的次数大于容错次数则停止该条记录的解析。代码github：https://github.com/duanhongyi/smartdns安装依赖：gcc
bzip2
python3以及相关dev包
Twisted安装：git clone smartdns到本地路径，执行python setup.py install命令安装。启动：执行sdns /etc/smartdns即可启动smartdns测试本地测试 dig test.test.com @127.0.0.1或者将搭建的smartdns加到测试域名的ns中进行测试。支持mail:duanhongyi@doopai.comgithub: duanhongyiEDNS相关请参考：DNS support edns-client-subnet
Package: smartdoor
Smartdoor client systemSmartdoor system including NFC card detecting, key locking/unlocking, turning LED on/off, etc. with Raspberry Pi.Default circuit diagramThe default circuit diagram is shown below. If you want to use other GPIO pin numbers, please edit the configuration file (see below).not yet updatedQuick Installationsudopython-mpipinstallsmartdoorBefore getting startedsmartdoor_hostsystemSmartdoor Host system which serves the web application for NFC key management must be run. Please
install and deploy it in adavnce. (see here).pigpio librarypigpiolibrary enables hardware control for PWM signals. This is the optional library forsmartdoorpackage. If you want to use it, please install it in advance (see here) and run the daemon by the following command:sudopigpiodIt is recommended to run the daemon automatically at the system startup. Ifpigpiois installed
and impotable from Python,smartdoorpackage will automatically register it insystemdservice (see below).NFC reader permissionTo access NFC reader, the permission of the device file must be set. Please execute the following.sudosh-c'echo SUBSYSTEM==\"usb\", ACTION==\"add\", ATTRS{idVendor}==\"054c\", ATTRS{idProduct}==\"06c3\", GROUP=\"plugdev\" >> /etc/udev/rules.d/nfcdev.rules'sudoudevadmcontrol-RThen, reboot the system.
This instruction is based on the result ofpython -m nfccommand. If you use other NFC reader, please change theidVendorandidProductaccording to your device.How to useAlmost all the operations are done by thesmartdoorcommand. Please see the help message for the
details:smartdoor--help1. Set up the configuration fileThe default configuration file ca be generated by the following command:smartdoorconfig--generateThe configuration file is located at~/.config/smartdoor.toml. Please edit it according to your environment.2. Run the main program for testingThe main program can be executed by the following command:smartdoorstartIf you want to specify door is locked/unlocked, add--locked/--unlockedoption, by default
the door is locked.The main program will be run in the foreground. If you want stop the program, pressCtrl+C.3. Set up the auto startThe main program can be automatically run bysystemdservice. To register thesmartdoor.servicetosystemd, execute the following command:smartdoorservice--registerThen, the service will be ready for start. Simaltenously, thepigpiodservice will be registered
ifpigpiolibrary is installed.To manually start it, execute the following command:smartdoorservice--startPlease see the help message for other options:smartdoorservice--help
Package: smart-dummy
smart_dummyA smart and easy alternative to pandas.get_dummies.DescriptionSmart_dummy uses a language-based model (Spacy) in combination with KMeans
clustering to group categorical variables into logical groups. The user can
specify how many groups they would like to output, which results in fewer
columns compared to pandas.get_dummies().
For example, you might have a dataset with 900 unique categories, but smart_dummy
allows you to cluster those industries together and get (for example) only
5 columns back instead of the 900 that you would have gotten using
pandas.get_dummies().Getting StartedInstallingpip install smart_dummyExample Useimport pandas as pd
from smart_dummy import get_dummies

test_input = pd.DataFrame(['cat', 'dog', 'flower', 'tree', 'man', 'woman'], columns=['category'])
result = get_dummies(test_input['category'], 3).set_index(test_input['category'])
print(result)Will give:category_0  category_1  category_2
cat       0           0           1
dog       0           0           1
flower    1           0           0
tree      1           0           0
man       0           1           0
woman     0           1           0AuthorsMuriel Grobler (muriel.grobler@gmail.com)Emma Zhang  (emma.lzhang@gmail.com)LicenseThis project is licensed under the MIT License - see the LICENSE file for detailsAcknowledgmentsMany thanks to Arrive Logistics for allowing us to open-source this work. Please
consider them as your future employer - it's a great place to work!Arrive Logistics
Package: smartem
An installation ofPostgreSQLis required. The easiest way is to work
in acondaenvironment and simply runconda install postgresql.After installation runsmartem.init-d<path/to/where/data/will/go>This will run basic database setup. Upon completion this should suggest running a command
to set the environment variableSMARTEM_CREDENTIALSwhich will setup database access
credentials for you. The database server is started withsmartem.start-d<path/to/where/data/will/go>and once you no longer need the server it can be stopped withsmartem.stop-d<path/to/where/data/will/go>ThesmartemGUI can be launched (if there is a database server running) withsmartem.launch
Package: smartencoding
These functions are copied from the source code of Django 1.5b2.
And provides smart functions for convertation into utf8 and other encodings without Django.
For example, I use in the Flask.Installation:pip install smartencodingHow to use:from smartencoding import smart_unicode, smart_unicode_with_replace
print smart_unicode(some_string)
print smart_unicode_with_replace(broken_string)See also:https://pypi.python.org/pypi/Unidecodehttps://pypi.python.org/pypi/chardet
Package: smart-energy.awattar-api
Awattar APIA python library to access the Awattar Api. Refer also to theAwattar Energy Price API. This repo provides functionality for:Getting Energy Price forecast information.Installing the library locallyPython 3 is recommended for this project.python-mpipinstall-e.This is needed for the first time when working with the library/examples/tests.Example usageENERGY_DATA_API_URL="https://api.awattar.de"python3examples/simple.pyorfromawattar_api.awattar_apiimportAwattarApiawattar_api=AwattarApi('provide_api_url')# or you can define additional optional parameters# awattar_api = AwattarApi('provide_api_url', timeout=10)print(awattar_api.get_electricity_price())DevelopmentInstalling required pip packagespythonpipinstall-rrequirements.txt
pre-commitinstall-tpre-pushLintingpylintawattar_api/*.pytests/*.pyexamples/*.pyUnit testingpytesttests/*.py# show logspytest-olog_cli=true# code coveragepytest--durations=10--cov-reportterm-missing--cov=awattar_apitests
Package: smart-energy.data-vald3nir
Smart Energy DataRepository of data models, DAOs and APIs for the CICI core systemOverview─── smart_energy_data
    ├── datasets
    │   ├── base_dataset.py
    │   ├── data
    │   │   ├── address.csv
    │   │   ├── energy_consumption.csv
    │   │   ├── energy_generated.csv
    │   │   ├── environment.csv
    │   │   ├── sensors.csv
    │   │   └── users.json
    │   ├── datasets.py        │   
    ├── __pycache__
    └── repository
        ├── address
        │   ├── address_dao.py
        │   ├── address_dto.py
        │   ├── address_mapper.py
        ├── consumption
        │   ├── consumption_api.py
        │   ├── consumption_dao.py
        │   ├── consumption_dto.py
        │   ├── consumption_mapper.py
        │   ├── consumption_pipeline.py
        ├── env_conditions
        │   ├── env_conditions_api.py
        │   ├── env_conditions_dao.py
        │   ├── env_conditions_dto.py
        │   ├── env_conditions_mapper.py
        ├── generation
        │   ├── generation_api.py
        │   ├── generation_dao.py
        │   ├── generation_dto.py
        │   ├── generation_mapper.py
        │   ├── generation_pipeline.py
        ├── sensor
        │   ├── sensor_dao.py
        │   ├── sensor_dto.py
        │   └── sensor_mapper.py
        └── user
            ├── user_dao.py
            ├── user_dto.py
            └── user_mapper.py
Package: smart-energy.goecharger-api
Go-eCharger APIA python API to access the Go-eCharger wallbox. Official Go-eChargerAPI documentation.Installing the library locallypython3-mpipinstall-e.This is needed for the first time when working with the library/examples/tests.Example usageGOE_API_URL="https://REPLACE_ME.api.v3.go-e.io"GOE_API_TOKEN="REPLACE_ME"python3examples/simple.pyorfromgoechargerv2.goechargerimportGoeChargerApicharger=GoeChargerApi('provide_api_url','provide_api_token')# or you can define additional optional parameters# charger = GoeChargerApi('provide_api_url', 'provide_api_token', timeout=10, wait=True)print(charger.request_status())DevelopmentInstall required pip packagespython3-mpipinstall-rrequirements.txt
pre-commitinstall-tpre-pushLintingpylinttests/*.pysrc/**/*.pyUnit testingpytest# show logspytest-olog_cli=true# code coveragepytest--durations=10--cov-reportterm-missing--cov=src.goechargerv2tests
Package: smart-energy.green-energy-api
smart_energy.green_energy_apiA python library to access the Awattar Api. Refer also to theAwattar Energy Price API. This repo provides functionality for:Getting Energy Price forecast forecast information.Installing the library locallyPython 3 is recommended for this project.python-mpipinstall-e.This is needed for the first time when working with the library/examples/tests.Example usageENERGY_DATA_API_URL="https://api.awattar.de"python3examples/simple.pyorfromgreen_energy_api.green_energy_apiimportGreenEnergyApigreen_energy_api=GreenEnergyApi('provide_api_url')# or you can define additional optional parameters# green_energy_api = GreenEnergyApi('provide_api_url', timeout=10)print(green_energy_api.get_electricity_price())DevelopmentInstalling required pip packagespythonpipinstall-rrequirements.txt
pre-commitinstall-tpre-pushLintingpylintgreen_energy_api/*.pytests/*.pyexamples/*.pyUnit testingpytesttests/*.py# show logspytest-olog_cli=true# code coveragepytest--durations=10--cov-reportterm-missing--cov=green_energy_apitests
Package: smartengine
smartengine PackageThis package simplifies the usage of smartengine's Restful-Api. More specifically it simplifies retrieving data from the Api. The data that can be retrieved includes sensor data such as serial_number, name and data sensors are continuesly collecting as well as location data such as location ids, location names and location sensors.InstallationThis package can be installed via thepip installcommand.pip install smartengineBefore UsageMake sure the device that is running this code is connected to the master of the smartengine-system. It's either a smartengine or a smartdirector. The device should preferably be in the same network as the master of the smartengine-system. Physical direct Ethernet connection also works.Examples1 - Import Package:fromsmartengine.r_apiimportfixtures,location,restfulfromsmartengine.u_apiimportsubscribe,set,unified2 - Initiate rAPI:smartengine1=fixtures.FixturesApi(user="<some_user>",password="<some_password>",ipv4_adress="<master_ipv4_adress>")ORsmartengine2=unified.uApi(user="<some_user>",password="<some_password>",ipv4_adress="<master_ipv4_adress>")3 - Call desired method:all_fixtures=smartengine1.get_all_fixtures()print(all_fixtures)>>>listofdictionariesresponse=smartengine2.set_brightness(location=103,brightness=50)print(response.status_code)>>>200DocumentationDeveloper Guide- Documentation for DevelopersLicenseThis Package is licensed under theMIT License
Package: smart-env
SmartEnv - OS Environment Wrapper LibraryA flexible, easy-to-use library for managing environment variables in your Python script.Why yet another one?This library comes with a few major points to use it:It is easy and intuitive (see examples)It's compatible with Python 2 (can be useful in old large systems)Continuous support of the libraryGetting startedThis library is pretty easy to use:fromsmart_envimportENVprint(ENV.HOME)# Equals print(os.environ['HOME'])# Apply type cast wherever you need by using ENV as a context managerwithENV:# assuming you set env variable MYVAR to "True" in shellmy_var=ENV.MY_VAR# Equals boolean True# And here type cast is automatically disabledmy_second_var=ENV.MY_VAR# Equals 'True' as string# Enabling automatic type cast for all the further commandsENV.enable_automatic_type_cast()# assuming you set env variable MYVAR to "True" in shellmy_var=ENV.MY_VAR# Equals boolean TrueENV.NEW_VAR=100# Sets a new environment variable# Disabling automatic type castENV.enable_automatic_type_cast()How to useIn a few words, the logic is next:You can store a lot of serialized values in Environment variables and then deserialize them on fly using ENV class.Each environment variable can be accessed as an attribute of ENV class:ENV.<variable_name>The internal decoding mechanism is based onjsonandastpackages. That means,
you can parse even some JSON-incompatible values (for example, with single quotes used for defining strings).InstallingSimply runpip install smart-envRunning the testsThis library contains tests written usingunittestmodule, so just run in the project directorypython -m unittestIt's possible to run tests using Tox as well:tox-e<env>or justtoxTests coverage is one of the important goals of this project.
For now coverage is next:For Python 2.7: 99%For Python 3.x: 97%Supported environments:py27py35py36py37py38py39py310py311coverage (using Python 3)coverage27 (using Python 2.7)pep8 (style checking)RestrictionsOld versions of Python in both generations (e.g. 2.6, 3.4, etc) will never be supported.
However, you always can implement such support in your forks.Parsing set() objects is not working in Python 2. Seethisfor details.AuthorsOlek Sokolov-Author-AlbartashContactsTelegram channel with updates:@bart_toolsLicenseThis project is licensed under the MIT License - see theLICENSE.mdfile for details.
Package: smarter
SmarterSome objects could be smarterpipinstallsmarterSmartListregularlistoperationsfromsmarterimportSmartListcolors=SmartList(['red','green','blue'])colors.append('yellow')colors.extend(['orange','purple'])colors.insert(1,'black')colors.remove('black')smartlistoperationscolors.first()# 'red'colors.last()# 'purple'colors.first_or(13)# 'red'colors.last_or("default")# 'purple'items=SmartList([])# empty listitems.first_or(13)# 13items.last_or("default")# 'default'items=SmartList([None,"",[],13])items.first_not_null()# ""items=SmartList([None,"",[],13])items.first_not_nullable()# 13SmartResultWrapperInstead of calling error prone functions, wrap it in aResultobjectdefthis_fails(x):returnx/0w=Result(this_fails,5)# instead of w = this_fails(5)w.is_error()# Truew.is_ok()# Falsew.exc# ZeroDivisionErrorw.unwrap_or(5)# 5w.unwrap_or_else(lambda:5)# 5w.and_then(lambdax:x+1,5)# Raises ZerodivisionErrorw.unwrap()# Raises ZeroDivisionErrordefthis_succeeds(x):return1+xw=Result(this_succeeds,5)# Instead of w = this_succeeds(5)w.is_error()# Falsew.is_ok()# Truew.exc# Nonew.unwrap_or(5)# 6w.unwrap_or_else(lambda:'default')# 6w.and_then(lambdavalue,x:value*x,5).unwrap()# 30w.unwrap()# 6defdouble_integer(x):returnx*2result=(w.and_then(double_integer)# 12.and_then(double_integer)# 24.and_then(double_integer)# 48.and_then(double_integer)# 96.unwrap())# 96w.ok()# 6By default all exceptions arewrappedin aResultobject but it is
possible to specify the exception type.person={'name':'John','age':'25'}w=Result(person.__getitem__,'city',suppress=KeyError)w.is_error()# Truew.exc# KeyErrorw.unwrap_or('Gotham')# 'Gotham'# When exception type is specified, other exceptions are not wrapped# raising the original exception eagerly/immediately.w=Result(person.get,'city','other','another',suppress=KeyError)Traceback(mostrecentcalllast):...TypeError:getexpectedatmost2arguments,got3However the above example is better covered by the smart>> getdescribed below.SmartgetoperationsGiven the following objectsperson={'name':'John','age':30}colors=['red','green','blue']position=(1,2,6,9)classPerson:name="John"Ubiquitousgetoperations using>>operator# On a `dict` gets by `key`person>>get('name')# 'John'person>>get('age')# 30person>>get('city',default='Gotham')# Gotham# On a `list` gets by `index`colors>>get(0)# 'red'colors>>get(1)# 'green'colors>>get(2)# 'blue'colors>>get(3)# Nonecolors>>get(4,"default")# 'default'# On a `tuple` gets by `index`position>>get(0)# 1position>>get(1)# 2# On a `class` gets by `attribute`p=Person()p>>get('name')# 'John'p>>get('age',default=45)# 45
Package: smarterbombing
Eve SmarterbombingAn application analyzing Eve Online combat logs and presenting data in a Web interface.⚡ Quick Start📦 From PyPIpipinstallsmarterbombing
python-msmarterbombing📂 From Sourcepoetryinstall
poetryrunpython-msmarterbombingOpen with your preferred browser:OpenWeb UIOpenWeb UI (Dark Mode)📃 Command line optionsFlagValid ValuesDefaultDescription--modewebuiwebuiWhich UI mode to run--portAny valid port42069Which port to host webui🚧 DevelopmentWhen developing it's most convenient to use thepoetryshellwhich will provides a virtual
environment with all the dependencies and tools required. Install dependencies and activate the
virtual environment using the following commands:poetryinstall
poetryshell🟢 Runningpython-msmarterbombing📋 Unit Testspytesttests/--cov=smarterbombing--cov-branch🏋️‍♀️ Performance Benchmarks# Damage Graph Aggregatorpythonbenchmark/damage_graph_aggregator.py# Combat Log Parserpythonbenchmark/parse_combat_log_line.py
Package: smartetailing
Smartetailing PackageThis package provides a simple, thin wrapper around the 3 major smartetailing endpoints. It also provides a Pythonic
object representation of the order xml export.v2.00is the XML version currently required.ExamplesBasically, just instantiateSmartetailingConnection()object and call the public methods.from smartetailing import connection, objects

connect_website = connection.SmartetailingConnection(base_url='www.example.com/webservices/xml/feeds.cfc', merchant_id=01234, urlkey='SECRET')
orders = list(connect_website.export_orders())  # List[WebOrder]
connect_website.confirm_order_receipts([o.id for o in orders])
connect_website.update_order_status(orders[0].id, 'Completed')TODO - Doc comments need to be betterNotesCurrently only supports smart etailing order export v2. Support for v1 could be added if requested.Setup instructions from here:https://realpython.com/pypi-publish-python-package/
Package: smart-eval
SMART: Sentences as Basic Units for Summary EvaluationThis directory contains tools for using SMART to evaluate texts produced
by systems, given the source document and the reference summaries.Link to paper:https://arxiv.org/pdf/2208.01030.pdfRun SMART EvaluationSMART can be run programmatically. For example:matcher = matching_functions.chrf_matcher
smart_scorer = scorer.SmartScorer(matching_fn=matcher)
score = smart_scorer.smart_score(reference, candidate)Here,scoreis a dictionary containing SMART (1/2/L) scores.Replicate SummEval results in the paperYou first need to download the necessary datasets:BARTScore data(you need to unpickle and save it again as a json file)SummEval dataYou also need to download the precomputed scores for model-based matching functions (e.g., BLEURT, BERTScore, and T5-ANLI). In the terminal, follow the instructions and installgsutil. Then run:gsutil cp -r gs://gresearch/SMART ./Then, finally, run the following:python summeval_experiments.py --bartscore_file=${BARTSCORE_PATH} --summeval_file=${SUMMEVAL_PATH} -- output_file=${OUTPUT_PATH}
Package: smartexporter-tspspi
Simple Python SMART exporter for Prometheus on FreeBSDThis is a simple SMART exporter as provider for thePrometheus  time series database
and monitoring systemwritten in Python. It uses
theprometheus-clientPython
package to do the main work of running the webservice and managing the gauges.
It's just a wrapper that periodically callssmartmonctlfromsmartmontoolsto gather information about the filesystems disks which is then provided on
the specified TCP port where it's collected by Prometheus at the specified
scrape interval. This scraper usesgeom disk listto determine which disks
should be queried (thus it only works on FreeBSD, not on Linux).Since this exporter scrapes the output of the CLI tools it may break with
any software update and might only work with particular versions of those
tools. It has been tested on:FreeBSD 11.2FreeBSD 12.2FreeBSD 12.3Exported metricsFor each disk the following parameters are exposed viageom(serial
and name used as labels):Media size (mediasize)Sector size (sectorsize)Rotation speed for rotating harddisks (rotationrate)All smart parameters of every disk that are available viasmartctl(serial
and name used as labels). These are published withsmart_prefix.InstallationThe package can either be installed from PyPIpip install smartexporter-tspspior form a package downloaded directly from thetar.gzorwhlfrom
thereleases:pip install smartexporter-tspspi.tar.gzNote thatsmartmontoolsare required on the target system. They can
be installed usingpkg:pkg install smartmontoolsrc.dinit scriptIn addition the exporter can be launched on boot and configured from/etc/rc.confusing an rc.init script. A simple implementation can be found in thercd/smartexporterscript. This script can be copied to/usr/local/etc/rc.d/smartexporter.
Then one can perform basic configuration fromrc.conf:smartexporter_enable="YES"
smartexporter_port="9248"
smartexporter_loglevel="error"Usageusage: smartexporter [-h] [-f] [--uid UID] [--gid GID] [--chroot CHROOT] [--pidfile PIDFILE] [--loglevel LOGLEVEL] [--logfile LOGFILE] [--port PORT] [--interval INTERVAL]

SMART data exporter daemon

optional arguments:
  -h, --help           show this help message and exit
  -f, --foreground     Do not daemonize - stay in foreground and dump debug information to the terminal
  --uid UID            User ID to impersonate when launching as root
  --gid GID            Group ID to impersonate when launching as root
  --chroot CHROOT      Chroot directory that should be switched into
  --pidfile PIDFILE    PID file to keep only one daemon instance running
  --loglevel LOGLEVEL  Loglevel to use (debug, info, warning, error, critical). Default: error
  --logfile LOGFILE    Logfile that should be used as target for log messages
  --port PORT          Port to listen on (default 9248)
  --interval INTERVAL  Interval in seconds in which data is gathered (default 300 seconds)