Saravanan666/pypi-org huggingface dataset:
Package: aioAlice
aioAliceAsyncIO library for Yandex Alice (Yandex Dialogs)Why?Work with classes, don't bother parsing JSONAuto answer to webhook even if you were not fast enough to create answer - there won't be a server error, but you'll get a logAuto response will not help if you are not using async IO. So consider not to use any long processing synchronous tasks inside handlersHandy handlers to match incoming commandsFinite-State MachineEasy images upload, easy answers generationInstallation# make sure you use virtual env and python 3.6+:python3.6-mvenvaliceenvsource./aliceenv/bin/activate

pipinstallpip-U
pipinstallsetuptools-U
pipinstalluvloop# uvloop if you wantpipinstallaioalice-U# Or install from GitHub:# pip install git+https://github.com/surik00/aioalice.git -U# or if you don't have git installed:# 1. download ZIP# 2. unarchive and go to dir# 3. run:pythonsetup.pyinstallQuick startHello alicedp=Dispatcher()@dp.request_handler()asyncdefhandle_all_requests(alice_request):returnalice_request.response('Hello world!')CardsAll examplesUpload image exampleBig Image Card exampleItems List Card exampleJSON serializingIf you want to use a faster json library, installrapidjsonorujson, it will be detected and used automaticallySkills using aioAliceThe Erundopel gameTesting and deploymentIn all examples the next configuration is used:WEBHOOK_URL_PATH='/my-alice-webhook/'# webhook endpointWEBAPP_HOST='localhost'# running on local machineWEBAPP_PORT=3001# we can use any port that is not use by other appsFor testing purposes you can usengrok, so set webhook tohttps://1a2b3c4d5e.ngrok.io/my-alice-webhook/(endpoint has to beWEBHOOK_URL_PATH, because WebApp expects to get updates only there), post has to beWEBAPP_PORT(in this example it is 3001)For production you can use Nginx, then edit Nginx configuration and add these lines inside theserverblock:location /my-alice-webhook/ {  # WEBHOOK_URL_PATH
    proxy_pass         http://127.0.0.1:3001/;  # addr to reach WebApp, in this case it is localhost and port is 3001
    proxy_redirect     off;
    proxy_set_header   Host $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Host $server_name;
}
Package: aioamqp
aioamqplibrary is a pure-Python implementation of theAMQP 0.9.1 protocol.Built on top on Python’s asynchronous I/O support introduced inPEP 3156, it provides an API based on coroutines, making it easy to write highly concurrent applications.Bug reports, patches and suggestions welcome! Just open anissueor send apull request.testsTo run the tests, you’ll need to install the Python test dependencies:pip install -r requirements_dev.txtTests require an instance of RabbitMQ. You can start a new instance using docker:docker run -d --log-driver=syslog -e RABBITMQ_NODENAME=my-rabbit --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-managementThen you can run the tests withmake test.tests using docker-composeStart RabbitMQ usingdocker-composeup-drabbitmq. When RabbitMQ has started, start the tests usingdocker-composeup--buildaioamqp-test
Package: aio-amqp
AboutAsynchronous AMQP client for 0.9.1 protocol versionInstallationRecommended way (via pip):$pipinstallaio-amqpLicenseCopyright 2020 Not Just A Toy Corp.Licensed under the Apache License, Version 2.0 (the “License”);
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Package: aioamqp-authentise
aioamqplibrary is a pure-Python implementation of theAMQP 0.9.1 protocol.Built on top on Python’s asynchronous I/O support introduced inPEP 3156, it provides an API based on coroutines, making it easy to write highly concurrent applications.Bug reports, patches and suggestions welcome! Just open anissueor send apull request.testsTo run the tests, you’ll need to install the Python test dependencies:pip install -r requirements_dev.txtTests require an instance of RabbitMQ. You can start a new instance using docker:docker run -d --log-driver=syslog -e RABBITMQ_NODENAME=my-rabbit --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-managementThen you can run the tests withmake test(requiresnose).
Package: aioamqp_consumer
info:consumer/producer/rpc library built over aioamqpInstallationpipinstallaioamqp_consumerConsumer/Producer usageimportasynciofromaioamqp_consumerimportConsumer,Producerasyncdeftask(payload,properties):awaitasyncio.sleep(1)print(payload)asyncdefmain():amqp_url='amqp://guest:guest@127.0.0.1:5672//'amqp_queue='your-queue-here'queue_kwargs={'durable':True,}# https://aioamqp.readthedocs.io/en/latest/api.html#aioamqp.connectamqp_kwargs={}asyncwithProducer(amqp_url,amqp_kwargs=amqp_kwargs)asproducer:for_inrange(5):awaitproducer.publish(b'hello',amqp_queue,queue_kwargs=queue_kwargs,)consumer=Consumer(amqp_url,task,amqp_queue,queue_kwargs=queue_kwargs,amqp_kwargs=amqp_kwargs,)awaitconsumer.scale(20)# scale up to 20 background coroutinesawaitconsumer.scale(5)# downscale to 5 background coroutines# wait for rabbitmq queue is empty and all local messages are processedawaitconsumer.join()consumer.close()awaitconsumer.wait_closed()loop=asyncio.get_event_loop()loop.run_until_complete(main())loop.close()RPC usageimportasynciofromaioamqp_consumerimportRpcClient,RpcServer,rpcpayload=b'test'@rpc(queue_name='random_queue')asyncdefmethod(payload):print(payload)returnpayloadasyncdefmain():amqp_url='amqp://guest:guest@127.0.0.1:5672//'server=RpcServer(amqp_url,method=method)client=RpcClient(amqp_url)ret=awaitclient.wait(method(payload))assertret==payloadawaitclient.close()awaitserver.stop()loop=asyncio.get_event_loop()loop.run_until_complete(main())loop.close()For built-in json encoding/decoding, take a look onaioamqp_consumer.json_rpcFor production deployingaioamqp_consumer.Consumer/aioamqp_consumer.RpcServerthere is built-in simpler runner:fromaioamqp_consumerimportRpcServer,json_rpcamqp_url='amqp://guest:guest@127.0.0.1:5672//'@json_rpc(queue_name='random_queue')asyncdefsquare(*,x):ret=x**2print(x,ret)returnretif__name__=='__main__':RpcServer(amqp_url,method=square).run()ThanksThe library was donated byOcean S.A.Thanks to the company for contribution.
Package: aioamqp-consumer-best
aioamqp-consumer-bestUsageimportasynciofromtypingimportListfromaioamqp_consumer_bestimport(ConnectionParams,Consumer,Exchange,Message,ProcessBulk,Queue,QueueBinding,ToBulks,load_json,)asyncdefcallback(messages:List[Message])->None:print(messages)consumer=Consumer(middleware=(load_json|ToBulks(max_bulk_size=10,bulk_timeout=3.0)|ProcessBulk(callback)),prefetch_count=10,queue=Queue(name='test-queue',bindings=[QueueBinding(exchange=Exchange('test-exchange'),routing_key='test-routing-key',),],),connection_params=[# Round robinConnectionParams(),ConnectionParams.from_string('amqp://user@rmq-host:5672/'),],)asyncio.run(consumer.start())
Package: aioamqp-ext
# Asynchronous AMQP base Consumer and Producer.AMQP Consumer and Producer base classes. Working on top of `aioamqp`.## UsageProducer:from aioamqp_ext import BaseProducerproducer = BaseProducer(**{'url': 'amqp://localhost:5672/','exchange': 'my_exchange'})producer.publish_message(payload='foo',routing_key='bar')producer.close()Consumer:from aioamqp_ext import BaseConsumerclass Consumer(BaseConsumer):async def process_request(self, data):print(data)if __name__ == "__main__":consumer = Consumer(**{'url': 'amqp://localhost:5672/','exchange': 'my_exchange','queue': 'my_queue','routing_key': 'foo.bar'})try:loop = asyncio.get_event_loop()loop.run_until_complete(consumer.consume())loop.run_forever()except KeyboardInterrupt:loop.run_until_complete(consumer.close())finally:loop.close()## TestsTo run the tests, you'll need to install the Python test dependencies::pip install -r ./requirements-ci.txtThen you can run the tests with `make unit-test `.
Package: aio-androidtv
Documentation for this package can be found athttps://aio-androidtv.readthedocs.io.aio-androidtvis a Python 3.7+ package that provides state information and control of Android TV and Fire TV devices via ADB.InstallationBe sure you install into a Python 3.7+ environment.pipinstallaio-androidtvADB Intents and CommandsA collection of useful intents and commands can be foundhere(credit: mcfrojd).AcknowledgmentsThis is based onpython-firetvby happyleavesaoc and theandroidtv component for Home Assistantby a1ex4, and it depends on the Python packageaio-adb-shell(which is based onpython-adb).
Package: aio_anticaptcha
API documentationhttps://anti-captcha.com/apidochttp://antigate.com/?action=api#algoInstallationYou can install it using Pip:pip install aio_anticaptchaIf you want the latest development version, you can install it from source:git clone git@github.com:nibrag/aio_anticaptcha.git
cd aio_anticaptcha
python setup.py installRequirements:python 3.4+
aiohttpUsageWith context managerimportasynciofromaio_anticaptchaimportAntiCaptcha,ServiceErrorasyncdefrun(loop):try:withAntiCaptcha('API-KEY',loop=loop)asac:# io.IOBasefh=open('captcha.jpg')resolved,captcha_id=awaitac.resolve(fh)# or bytes, bytearraybytes_buff=open('captcha.jpg','rb').read()resolved,captcha_id=awaitac.resolved(bytes_buff)exceptZeroBalanceError:print('Zero balance')exceptUserKeyError:print('Invalid api key...')exceptServiceErrorase:print('Something else',str(e))if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(run(loop))loop.close()Without context managerimportasynciofromaio_anticaptchaimportAntiCaptcha,ServiceErrorasyncdefrun(loop):ac=AntiCaptcha('API-KEY',loop=loop)try:# io.IOBaseresolved,captcha_id=awaitac.resolve(open('captcha.jpg'))# or bytes, bytearraybytes_buff=open('captcha.jpg','rb').read()resolved,captcha_id=awaitac.resolved(bytes_buff)exceptServiceErrorase:print(e)finally:# do'nt forget call close methodac.close()if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(run(loop))loop.close()If you wish to complain about a mismatch results, useabusemethod:importasynciofromaio_anticaptchaimportAntiCaptchaasyncdefrun(loop):withAntiCaptcha('API-KEY',loop=loop)asac:resolved,captcha_id=awaitac.resolve(open('captcha.jpg'))awaitac.abuse(captcha_id)if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(run(loop))loop.close()After all manipulations, you can get your account balance:importasynciofromaio_anticaptchaimportAntiCaptchaasyncdefrun(loop):withAntiCaptcha('API-KEY',loop=loop)asac:balance=awaitac.get_balance()if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(run(loop))loop.close()Additional options for sending Captcha:Read documentation about all available options:https://anti-captcha.com/apidocimportasynciofromaio_anticaptchaimportAntiCaptchaasyncdefrun(loop):withAntiCaptcha('API-KEY',loop=loop)asac:resolved,captcha_id=awaitac.resolve(open('captcha.jpg'),max_len=5,is_russian=True)if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(run(loop))loop.close()Customizing anticaptcha serviceimportasynciofromaio_anticaptchaimportAntiCaptchaasyncdefrun(loop):withAntiCaptcha('API-KEY',loop=loop,domain='antigate.com',port=80)asac:balance=awaitac.get_balance()if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(run(loop))loop.close()AntiGate.com supportedimportasynciofromaio_anticaptchaimportAntiGateasyncdefrun(loop):withAntiGate('API-KEY',loop=loop)asag:balance=awaitag.get_balance()if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(run(loop))loop.close()
Package: aioapcaccess
aioapcaccessAn async implementation ofapcaccess. This
library provides programmatic access to the status information provided byapcupsdover its Network Information Server (NIS) which
usually listens on TCP port 3551.This project is a re-implementation of the synchronous versionflyte/apcaccessusingasyncio, where a lot of the logic is
borrowed and improved.InstallInstall with pip:$ pip install aioapcaccessUsageThe primary API for getting the status from APCUPS isaioapcaccess.request_status.
It returns acollections.OrderedDictmapping from field names (e.g., "SERIALNO") to
their values in string format. What fields are available will depend on the model of
your APC UPS, seeAPCUPSD manualfor details.The following example shows a typical usage ofaioapcaccessimportasyncioimportaioapcaccessasyncdefmain():result=awaitaioapcaccess.request_status(host='localhost',port=3551)print(result)if__name__=='__main__':asyncio.run(main())The example above will print the following (prettified and simplified):OrderedDict([
  ('APC', '001,036,0879'),
  ...,
  ('BATTV', '13.7 Volts'),
  ('CUMONBATT', '0 Seconds')
))])In addition torequest_status, we offer the following functions for advanced uses:aioapcaccess.request_raw_statusfor getting raw (unparsed) status inbytes.aioapcaccess.parse_raw_statusfor parsing thebytesto the dict shown above.aioapcaccess.split_unitfor splitting the supported unit suffix from the value
strings, returning a tuple(value, unit). You can checkaioapcaccess.UNITSfor
the set of supported units. Note that units are also in the forms of strings
(e.g., "Seconds", "Volts"). If no valid units are found in the value strings,unitwill beNone.
Package: aioapi
aioapiYet another way to build APIs usingAIOHTTPframework.Followdocumentationto know what you can do withAIOAPI.Installation$pipinstallaioapiUsageExamples of usage can be found atexamples/directory.To run example use command below:$makeexampleContributingTo work on theAIOAPIcodebase, you'll want to clone the project locally and install the required dependencies viapoetry:$gitclonegit@github.com:Gr1N/aioapi.git
$makeinstallTo run tests and linters use command below:$makelint&&maketestIf you want to run only tests or linters you can explicitly specify what you want to run, e.g.:$makelint-blackMilestonesIf you're interesting in project's future you can find milestones and plans atprojectspage.LicenseAIOAPIis licensed under the MIT license. See the license file for details.
Package: aio-apiclient
aio-apiclient – Async helper to work with HTTP APIsFeaturesConvenient work with any HTTP API (especially with REST)Supportshttpxandaiohttpas backends to make requestsVery configurable and usableAn ability to parse responses automaticallyContentsFeaturesRequirementsInstallationQuickStartUsageInitializationApp ShutdownMiddlewaresBug trackerContributingLicenseRequirementspython >= 3.7Installationaio-apiclientshould be installed using pip:pip install aio-apiclientPlease note thataio-apiclientrequires any of supported http backends
(aiohttp, httpx) to be installed in order for it to work.You may optionally install the requirements with the library:# For httpx
pip install aio-apiclient[httpx]

# For aiohttp
pip install aio-apiclient[aiohttp]QuickStartGithub API (https://developer.github.com/v4/):fromapiclientimportAPIClient# First available backend (aiohttp, httpx) will be usedclient=APIClient('https://api.github.com',headers={'Authorization':'token OAUTH-TOKEN'})# Read information about the current repositoryrepo=awaitclient.api.repos.klen['aio-apiclient'].get()print(repo)# dict parsed from Github Response JSONSlack API (https://api.slack.com/web):fromapiclientimportAPIClientclient=APIClient('https://api.github.com',headers={'Authorization':'token OAUTH-TOKEN'})# Update current user status (we don't care about this response)awaitclient.api['users.profile.set'].post(json={'profile':{'status_text':'working','status_emoji':':computer:''status_expiration':30,}},read_response_body=False)And etcUsageInitializationThe Client initialization requires root URL for a required API.fromapiclientimportAPIClientclient=APIClient(# Root URL for any API (required)'https://api.github.com',# Raise `client.Error` for any response with status code > 400raise_for_status=True,# Set to `False` if you only want to make a request and doesn't care about responsesread_response_body=True,# Parse response's body content-type and return JSON/TEXT/Form data instead the response itself# Set total timeout in secondstimeout=10.0,# Set backend type for making requests (apiclient.backends.BackendHTTPX,# apiclient.backends.BackendAIOHTTP) by default first available would be# choosenbackend_type=None,# Default backend options to use with every request (headers, params, data, ...)# ...)App ShutdownThe api client support graceful shutdown. Runawait client.shutdown()when
you are finishing your app (not necessary).MiddlewaresYou are able to dinamically change request params (method, url, other backend params) using middlewares.importtimefromapiclientimportAPIClientclient=APIClient('https://api.github.com')@client.middlewareasyncdefinsert_timestamp_header(method,url,options):options.setdefault('headers',{})options['headers']['X-Timestamp']=str(time.time())returnmethod,url,optionsBug trackerIf you have any suggestions, bug reports or
annoyances please report them to the issue tracker
athttps://github.com/klen/aio-apiclient/issuesContributingDevelopment of the project happens at:https://github.com/klen/aio-apiclientLicenseLicensed under aMIT license.
Package: aioapns
aioapnsis a library designed specifically for sending push-notifications to iOS devices
via Apple Push Notification Service. aioapns provides an efficient client through
asynchronous HTTP2 protocol for use with Python’sasyncioframework.aioapns requires Python 3.6 or later.PerformanceIn my testing aioapns allows you to send on average 1.3k notifications per second on a single core.FeaturesInternal connection pool which adapts to the current loadSupport for certificate and token based connectionsAbility to set TTL (time to live) for notificationsAbility to set priority for notificationsAbility to set collapse-key for notificationsAbility to use production or development APNs serverInstallationUse pip to install:$ pip install aioapnsBasic Usageimportasynciofromuuidimportuuid4fromaioapnsimportAPNs,NotificationRequest,PushTypeasyncdefrun():apns_cert_client=APNs(client_cert='/path/to/apns-cert.pem',use_sandbox=False,)apns_key_client=APNs(key='/path/to/apns-key.p8',key_id='<KEY_ID>',team_id='<TEAM_ID>',topic='<APNS_TOPIC>',# Bundle IDuse_sandbox=False,)request=NotificationRequest(device_token='<DEVICE_TOKEN>',message={"aps":{"alert":"Hello from APNs","badge":"1",}},notification_id=str(uuid4()),# optionaltime_to_live=3,# optionalpush_type=PushType.ALERT,# optional)awaitapns_cert_client.send_notification(request)awaitapns_key_client.send_notification(request)loop=asyncio.get_event_loop()loop.run_until_complete(run())Licenseaioapns is developed and distributed under the Apache 2.0 license.
Package: aio-appstoreserverlibrary
aio-appstoreserverlibraryapp-store-server-library-python asyncio API client, based on official versionUsagefromappstoreserverlibrary.api_clientimportAppStoreServerAPIClient,APIExceptionfromappstoreserverlibrary.models.EnvironmentimportEnvironmentfromappstoreserverlibrary.models.SendTestNotificationResponseimportSendTestNotificationResponseprivate_key=read_private_key("/path/to/key/SubscriptionKey_ABCDEFGHIJ.p8")# Implemenation will varykey_id="ABCDEFGHIJ"issuer_id="99b16628-15e4-4668-972b-eeff55eeff55"bundle_id="com.example"environment=Environment.SANDBOXclient=AppStoreServerAPIAsyncClient(private_key,key_id,issuer_id,bundle_id,environment)asyncdeftest_notifi():try:response=awaitclient.request_test_notification()print(response)exceptAPIExceptionase:print(e)
Package: aioaquacell
AioaquacellAsynchronous library to retrieve details of your Aquacell water softener deviceRequirementsaiohttpaioboto3requests_aws4authpycognitoaws_request_signerbotocoreUsageuserName="<email address>"password="<password>"asyncdefmain():api=AquacellApi()awaitapi.authenticate(userName,password)# Get the refresh tokenprint(api.refresh_token)softeners=awaitapi.get_all_softeners()forsoftenerinsofteners:print(softener.name)if__name__=="__main__":loop=asyncio.get_event_loop()loop.run_until_complete(main())Authenticate using refresh tokenrefresh_token="<refresh token>"api=AquacellApi()awaitapi.authenticate(refresh_token)
Package: aioaquarea
AioaquareaAsynchronous library to control Panasonic Aquarea devicesRequirementsThis library requires:Python >= 3.9asyncioaiohttpUsageThe library supports the production environment of the Panasonic Aquarea Smart Cloud API and also the Demo environment. One of the main usages of this library is to integrate the Panasonic Aquarea Smart Cloud API with Home Assistant viahome-assistant-aquareaHere is a simple example of how to use the library via getting a device object to interact with it:fromaioaquareaimport(Client,AquareaEnvironment,UpdateOperationMode)importaiohttpimportasyncioimportloggingfromdatetimeimporttimedeltaasyncdefmain():asyncwithaiohttp.ClientSession()assession:client=Client(username="USERNAME",password="PASSWORD",session=session,device_direct=True,refresh_login=True,environment=AquareaEnvironment.PRODUCTION,)# The library is designed to retrieve a device object and interact with it:devices=awaitclient.get_devices(include_long_id=True)# Picking the first device associated with the account:device_info=devices[0]device=awaitclient.get_device(device_info=device_info,consumption_refresh_interval=timedelta(minutes=1))# Or the device can also be retrieved by its long id if we know it:device=awaitclient.get_device(device_id="LONG ID",consumption_refresh_interval=timedelta(minutes=1))# Then we can interact with the device:awaitdevice.set_mode(UpdateOperationMode.HEAT)# The device can automatically refresh its data:awaitdevice.refresh_data()AcknowledgementsBig thanks toronhksfor his awesome work on thePanasonic Aquaera Smart Cloud integration with MQTT.
Package: aioarp
aioarpTable of ContentsInstallationDocumentationARP SpoofingARP requestsLicenseInstallationpip install aioarpDocumentationClick hereArp spoofingUsing this command, you can disable internet access for any device on your local network.$aioarpdisable192.168.0.81192.168.0.1enp0s3--seconds10or$aioarpspoof192.168.0.81192.168.0.111:11:11:11:11:11enp0s3--seconds10spoofcan be used to specify the fake mac address.Where...192.168.0.81is a target IP address for which we are blocking internet access.192.168.0.1is a gateway for our target IP address.enp0s3is an optional interface used to send ARP requests. if not specified, the default interface is used.secondsis an option that specifies how long we want to disable internet access for the target IP address.How to send ARP requestsSyncimportaioarpresponse=aioarp.request('10.0.2.2','enp0s3')print(response.sender_mac)# ee:xx:aa:mm:pp:le mac addressAsync [trio or asyncio]importtrioimportaioarpresponse=trio.run(aioarp.arequest,'10.0.2.2','enp0s3')importasyncioimportaioarpresponse=asyncio.run(aioarp.arequest('10.0.2.2','enp0s3'))Or without specifying aninterfaceparameterresponse = aioarp.request('10.0.2.2')Licenseaioarpis distributed under the terms of theMITlicense.Changelog0.0.11 (4/7/2023)Usegetmacpackage for mac address detecting.Addsend,disableandspoofcommands for the CLI. (#33)Make theinterfaceargument for thebuild_arp_packetfunction optional. (#32)0.0.10 (1/7/2023)AddPacketbase class. (#28)ChangeProtocoltoProtocolType. (#30)Validatesender_ipof the ARP response packet.0.0.9 (27/6/2023)Makeinterfaceargument optional. (#23)MoveStreamcreation fromrequesttosync_send_arp. (#24)0.0.8 (21/6/2023)Addwait_responseargument tosync_send_arpandasync_send_arp. (#13)0.0.7 (16/6/2023)Add basic API documentation. (#7)0.0.5 (12/6/2023)Add simple cli.0.0.3 (5/6/2023)Addsockargument torequestandarequestfunctions.Addtimeoutargument torequestandarequestfunctions.AddMockSocketclass for better unit testing.Change signature ofsync_send_arpandasync_send_arpfunctions, now they accept thestreamargument.