Saravanan666/pypi-org huggingface dataset:
Package: python-upwork
Python bindings for Upwork API (OAuth1)Upwork APIThis project provides a set of resources of Upwork API fromhttp://developers.upwork.combased on OAuth 1.0a.FeaturesThese are the supported API resources:My InfoCustom PaymentsHiringJob and Freelancer ProfileSearch Jobs and FreelancersOrganizationMessagesTime and Financial ReportingMetadataSnapshotTeamWorkd DiaryActivitiesLicenseCopyright 2020 Upwork Corporation. All Rights Reserved.python-upwork is 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.SLAThe usage of this API is ruled by the Terms of Use at:https://developers.upwork.com/api-tos.htmlRequirementsTo integrate this library you need to have:Python 3.8+requests_oauthlib >= 1.3.0Installationpip3 install python-upworkAll the dependencies will be automatically installed as well.UsageFollow instructions from theInstallationsection.Runmyapp.pyand follow the instructions, or openmyapp.pyand type theconsumer_keyandconsumer_secretthat you previously got from the API Center.That's all. Run your app aspython myapp.pyand have fun.'
Package: python-upwork-oauth2
Python bindings for Upwork API (OAuth2)Upwork APIThis project provides a set of resources of Upwork API fromhttp://developers.upwork.combased on OAuth 2.0.FeaturesThese are the supported API resources:My InfoCustom PaymentsHiringJob and Freelancer ProfileSearch Jobs and FreelancersOrganizationMessagesTime and Financial ReportingMetadataSnapshotTeamWorkd DiaryActivitiesLicenseCopyright 2020 Upwork Corporation. All Rights Reserved.python-upwork is 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.SLAThe usage of this API is ruled by the Terms of Use at:https://developers.upwork.com/api-tos.htmlRequirementsTo integrate this library you need to have:Python 3.8+requests_oauthlib >= 1.3.0Installationpip3 install python-upwork-oauth2All the dependencies will be automatically installed as well.UsageFollow instructions from theInstallationsection.Runmyapp.pyand follow the instructions, or openmyapp.pyand type theclient_idandclient_secretthat you previously got from the API Center.That's all. Run your app aspython myapp.pyand have fun.'
Package: python-urbandict
python-urbandictThis is a python project, that fetches definitions of words from urban dictionary's public API.Future additions. PRs are always welcome :)Calculate ratio ofthumbs_upandthumbs_downand decide the probability of a correct definition.InstallationPython 3.9 or higher is requiredTo install the library you can use the following command:# Linux/MacOS
python3 -m pip install --upgrade python-urbandict

# Windows
py -3 -m pip install --upgrade python-urbandictOr just try:pip install python-urbandictQuick ExampleYou can create an instance of theUrbanDictclass and pass a word to it. After that you can use thesearchmethod that will retrieve the definitions from UrbanDictionary.
If you want to you can also leave the word attribute empty, in which case a random word is selected by UrbanDictionary.frompyurbandictimportUrbanDictword=UrbanDict("python")results=word.search()print(results[0])>>>Definition(word='python',definition='The best thing to happen to [Computer Science] students in a data and [file] structures or [algorithms] class.',example='Joe: "Man...I spent a week coding that [algorithm] in C."\r\nMoe: "I got it [done in one] evening with [Python]. It works great."\r\nJoe: "Say, what? Where can I download that?"',author='TheNextBillGates',thumbs_up=243,thumbs_down=71,sound_urls=['https://api.twilio.com/2008-08-01/Accounts/ACd09691b82112e4b26fce156d7c01d0ed/Recordings/RE7065a4ef810937cc16ae2b6e4b54b67d'],written_on='2010-03-24T05:24:18.000Z',permalink='http://python.urbanup.com/4826760',defid=4826760,current_vote='')LinksPyPi
Package: python-usda
python-usda⚠️ Since October 1, 2019, the APIs this package relies on have been
deprecated. python-usda 1.x will remove those APIs and rely on the newFood Data Central_ APIs.python-usda is a fork ofpygov_ focused onUSDA's Food Composition Database API <usda>.
Have a look at thedocumentation!Setup::pip install python-usdaUsage.. code:: pythonfrom usda.client import UsdaClientclient = UsdaClient("YOUR_API_KEY")
foods = client.list_foods(5)for food in foods:
print(food.name)Result::Abiyuch, raw
Acerola juice, raw
Acerola, (west indian cherry), raw
Acorn stew (Apache)
Agave, cooked (Southwest).. _Food Data Central:https://fdc.nal.usda.gov/api-guide.html.. _pygov:https://pypi.org/project/pygov/.. _usda:http://ndb.nal.usda.gov/ndb/doc/.. _documentation:https://lucidiot.gitlab.io/python-usda/
Package: python-usernames
python-usernamesPython library to validate usernames suitable for use in public facing
applications where use can choose login names and sub-domains.FeaturesProvides a default regex validatorValidates against list ofbanned
wordsthat should not be used as username.Python 3.8+Installationpip install python-usernamesUsagesfrompython_usernamesimportis_safe_username>>>is_safe_username("jerk")False# contains one of the banned words>>>is_safe_username("handsome!")False# contains non-url friendly `!`is_safe_usernametakes the following optional arguments:whitelist: a case insensitive list of words that should be
considered as always safe. Default:[]blacklist: a case insensitive list of words that should be
considered as unsafe. Default:[]max_length: specify the maximun character a username can have.
Default:Noneregex: regular expression string that must pass before the banned
:   words is checked.The default regular expression is as follows:^                       # beginning of string
(?!_$)                  # no only _
(?![-.])                # no - or . at the beginning
(?!.*[_.-]{2})          # no __ or _. or ._ or .. or -- inside
[a-zA-Z0-9_.-]+         # allowed characters, atleast one must be present
(?<![.-])               # no - or . at the end
$                       # end of stringFurther ReadingLet’s talk about
usernamesGotchasWords likebigcock12will validated just fine, only equality against
thebanned word
listsis checked. We don't try to be smart to avoidScunthorpe
problem. If you can
come up with a algorithm/solution, please create an issue/pr :).LicenseMIT
Package: python-utilikilt
Python Utilikilt================Python Utilikilt is a collection of utility classes and functions.Installation------------Run `pip install python-utilikilt`Classes-------###MixInMonkey patches a classes with methods from a supplied class.###IndexableTakes a generator (or any iterator) and makes it indexable.```pythonfrom python_utils.classes import Indexabledef fib():a, b = 0, 1while 1:yield aa, b = b, a + bfib = Indexable(fib())fib[10]  #144fib[5]  #13fib[4:10:2] #[8, 21, 55]```Decorators----------###retryDecorator for retrying a function if exception occurs.###run_asyncDecorator for running a function in a seperate thread.###memoizeDecorator for caching the result of a function so subsequent calls are returned out of cache instead of re-running the function.Iterators---------###isplitterTakes an iterator and splits it into chunks of the specified size and yields the chunks.```pythonfrom python_utils.iterators import isplitterfor x in isplitter(xrange(1000), 100):print x #[0,...,99], [100,...,199]...[900,...,999]```###daterangeIterates over a range of dates stepping daily, monthly, or yearly```pythonfrom datetime import datefrom python_utils.iterators import daterangefor date in daterange(date('2012-05-01'),date('2012-05-20')):print date #2012-05-02, 2012-05-03...2012-05-20for date in daterange(date('2012-05-01'),date('2012-10-01'),frequency='monthly'):print date #2012-06-01, 2012-07-01...2012-10-01for date in daterange(date('1999-05-01'),date('2009-05-01'),frequency='yearly'):print date #2000-05-01, 2001-05-01...2009-05-01```
Package: pythonUtilitiesProject
# PythonUtilitiesProjectUtilities used for the german supermarket web scrapping project## Python environment setup
In the root directory of the project setup python virtual environment using virtualenv
>  python3 -m virtualenv .venvStart the virtualenv using
> source .venv/bin/activateInstall python libraries
> pip install -r requirements.txt## Testing the application
To test the application
> python3 -m pytest tests## Build the module
To build the application you can run
> python3 setup.py sdist
this will generate a dist folder containing a.tar.gzfile.You can also use the build added fromrequirements.txt. To use this, run
> python3 -m build
this generates an additional.whlfile in the dist folder
Package: python-utility-scripts
python-utility-scriptsRepository for various python utility scriptspyappsutils-unusedcodeInstallationpip3installpython-utility-scripts--userLocal runClone therepositorygitclonehttps://github.com/RedHatQE/python-utility-scripts.gitInstallpoetrypoetryinstallConfig fileA config yaml file for various utilities of this repository should be added to~/.config/python-utility-scripts/config.yaml. Script specific config section details can be found in associated script README.mdRelease new versionrequirements:Export GitHub tokenexportGITHUB_TOKEN=<your_github_token>release-itRun the following once (execute outside repository dir for example~/):sudonpminstall--globalrelease-it
npminstall--save-dev@j-ulrich/release-it-regex-bumper
rm-fpackage.jsonpackage-lock.jsonusage:Create a release, run from the relevant branch.
To create a new release, run:gitcheckoutmain
gitpull
release-it# Follow the instructions
Package: python-vagrant-metadata
python-vagrant-metadatapython-vagrant-metadata is a library for download vagrant box in vagrant cloud or customs site.importrequestsfromvagrant_metadataimportfetch,forge_metadata_urlmetadata=fetch(forge_metadata_url('ubuntu/trusty64'))url=metadata.url_for_youngest_version('virtualbox')response=requests.get(url)ifresponse.ok:withopen('mybox.box','wb')asf:f.write(response.content)If you need the checksum of box for specific versions, you can use provider as likeimportrequestsfromvagrant_metadataimportfetch,forge_metadata_urlmetadata=fetch(forge_metadata_url('ubuntu/trusty64'))url=metadata.url_for('20190514.0.0','virtualbox')response=requests.get(url)ifresponse.ok:withopen('mybox.box','wb')asf:f.write(response.content)If you need the checksum of box, you can use provider as likefromvagrant_metadataimportfetch,forge_metadata_urlmetadata=fetch(forge_metadata_url('ubuntu/trusty64'))provider=metadata.youngest()['virtualbox']print(provider.url)print(provider.checksum)If you need the checksum of box for specific versions, you can use provider as likefromvagrant_metadataimportfetch,forge_metadata_urlmetadata=fetch(forge_metadata_url('ubuntu/trusty64'))provider=metadata['20190514.0.0']['virtualbox']print(provider.url)print(provider.checksum)If you want only version with the specific provider, you can filtering as likefromvagrant_metadataimportfetch,forge_metadata_urlmetadata=fetch(forge_metadata_url('ubuntu/trusty64'))provider=metadata.keep_only_provider('virtualbox').youngest()['virtualbox']print(provider.url)print(provider.checksum)Build packagepython3setup.pybdist_wheelpython3-mtwineupload--skip-existing--repositorytestpypidist/*python3-mpipinstall--index-urlhttps://test.pypi.org/simple/python-vagrant-metadata
Package: python-validation-rules
基于pydantic的BaseModel下实现的validationRules描述目前标准结构化的python都开始使用pydantic做结构限制以及校验，每一次的validator都要调用validator装饰器后自己实现。本库是为了整合涵盖所有可能出现的需要校验方法进行封装的规则包。目的是开箱即用注解形式方便使用前置需要配合pydantic的validator使用Installpip install python-validation-rules==0.1.0使用方式例如：校验该字段是否是标准手机号frompydanticimportBaseModel,Field,validatorfromvalidationRules.fieldRulesimportStringRulesclassTestUserBase(BaseModel):userName:str=Field(description="用户名",alias="user_name")mobileNumber:str=Field(description="手机号",alias="mobile_number")password:str=Field(description="密码",alias="password")email:str=Field(description="邮箱",alias="email")IDCard:str=Field(description="身份证号",alias="id_card")@validator("userName")@StringRules.accountRuledefcheck_account(cls,column):returncolumn@validator("mobileNumber")@StringRules.mobileRuledefcheck_mobile_number(cls,column):returncolumn@validator("password")@StringRules.keywordCheckRule(password_level=1,min_length=8)defcheck_keyword(cls,column):returncolumn@validator("email")@StringRules.emailRule(required=True)defcheck_email(cls,column):returncolumn@validator("IDCard")@StringRules.IDCardRule(required=True)defcheck_id_card(cls,column):returncolumn# user_obj: TestUserBase = TestUserBase(##     user_name="symoon",#     mobile_number="13232633123"# )## print(user_obj)# userName='symoon' mobileNumber='13232633123'user_obj:TestUserBase=TestUserBase(user_name="symoon",mobile_number="13232633123",password="gsy121994",email="fsdfsfsf@qq.com",id_card="130")print(user_obj)# [132326331231] mobile is not 11 length (type=value_error)方法描述参数类型描述requiredbool是否为必填字符串校验accountRule:账号校验标准账号校验方法@validator("userName")@StringRules.accountRuledefcheck_account(cls,column):returncolumnmobileRule:手机号校验手机号校验@validator("mobileNumber")@StringRules.mobileRuledefcheck_mobile_number(cls,column):returncolumnkeywordCheckRule:关键字符校验(密码校验)参数类型描述keyword_listList[str]校验字符是否包含列表中字符startswithstr校验是否以字符开头endswithstr校验是否以字符结尾min_lengthint校验最小长度max_lengthint校验最大长度password_levelint验证等级，默认为0 {3:"三种必须条件",2:"两种必须条件",3:"必须包含字母及数字",0:"不做验证"}@validator("password")@StringRules.keywordCheckRule(password_level=1,min_length=8)defcheck_keyword(cls,column):returncolumnemailRule:邮箱校验邮箱校验@validator("email")@StringRules.emailRule(required=True)defcheck_email(cls,column):returncolumnIDCardRule:身份证校验身份证校验@validator("IDCard")@StringRules.IDCardRule(required=True)defcheck_id_card(cls,column):returncolumn
Package: python-validator
python-validatorpython-validator 是一个类似于 Django ORM 的数据校验库，适用与任何需要进行数据校验的应用，比较常见的是 Web 后端校验前端的输入数据。文档特性支持 python2 和 python3。使用类描述数据结构，数据字段一目了然。另外也支持使用字典定义数据结构。可以自动生成用于测试的 mocking data。可以打印出清晰的数据结构。易于扩展。依赖sixIPypytz[可选，DatetimeField的tzinfo参数需要一个tzinfo对象]安装pip install python-validator快速入门假设现在正在开发一个上传用户信息的接口POST /api/user/，用户信息如下：字段类型描述nameString必选ageinteger可选，默认 20sexString, 'f'表示女, 'm'表示男可选, 默认 None原始的、枯燥无味的、重复性劳动的数据校验代码可能是下面这样：defuser(request):# data = json.loads(request.body)data={'age':'24f','sex':'f'}name=data.get('name')age=data.get('age',20)sex=dage.get('sex')ifnameisNoneorlen(name)==0:returnResponse('必须提供 name',status=400)try:age=int(age)exceptValueErrorase:returnResponse('age 格式错误',status=400)ifsexisnotNoneandsexnotin('f','m'):returnResponse('sex 格式错误',status=400)user_info={'name':name,'age':age,'sex':sex,}...上面这段代码总的来说有几个问题：枯燥无味和重复性代码，不断的取出数据，检查字段是否缺失，类型是否合法等等。从数据校验的代码无法轻易看出用户信息的数据结构，即字段是什么类型的，是否可选，默认值是什么。使用 python-validator 校验数据首先定义一个 UserInfoValidator 类# validators.pyfromvalidatorimportValidator,StringField,IntegerField,EnumFieldclassUserInfoValidator(Validator):name=StringField(max_length=50,required=True)age=IntegerField(min_value=1,max_value=120,default=20)sex=EnumField(choices=['f','m'])接下来使用UserInfoValidator进行数据校验，from.validatorsimportUserInfoValidatordefuser(request):# data = json.loads(request.body)data={'age':'24','sex':'f'}v=UserInfoValidator(data)ifnotv.is_valid():returnResponse({'msg':v.str_errors,'code':400},status=400)user_info=v.validated_data...v.str_errors是一个字段名 - 错误信息的 dict，例如：{'age':'got a wrong type: str, expect integer','name':'Field is required'}错误信息解释：age等于 "24"，不是合法的int类型。name是必须提供的，且没有指定默认值。v.validated_data 是校验后合法的数据，例如：{'age':24,'name':u'Michael','sex':'f'}下面是一些错误数据的例子：data:{'age':24,'name':'abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc','sex':'f'}is_valid:Falseerrors:{'name':'string is too long, max-lenght is 50'}validated_data:Nonedata:{'age':24,'name':'Michael','sex':'c'}is_valid:Falseerrors:{'sex':"'c' not in the choices"}validated_data:None细心的同学可能发现了IntegerField不接受 “数字字符串”，上面的例子中age是一个IntegerField，形如'24'这样的值是非法的。在某些情况下，你可能希望IntegerField不要这么严格，'24'这样的值也是可以接受的，那么可以把strict选项设为False，如：age = IntegerField(min_value=1, max_value=120, default=20, strict=False)。当strict选项为False时，python-validator 会尝试进行类型转换，假如转换失败则会报错。接下来你可以查看进阶了解 python-validator 更多的用法，查看字段 API了解字段的详细信息。测试使用 tox 和 pytest 进行代码测试。推荐使用pipenv来管理项目依赖。假如使用 pipenv：pipenv install(安装依赖库)pipenv run test假如使用 pip：pip install -r requirements.txt(安装依赖库)tox其它如果遇到 BUG 或者有任何建议，欢迎提交 issue 或者 PR。如果希望贡献代码，请尽量编写测试用例并测试你的代码，然后再提交 PR。
Package: pythonvalueobject
AboutAbstract base class for python value objects.UsageExtend and implement theis_validmethod.class Weight(ValueObject):
    def is_valid(self, value: int) -> bool:
        return isinstance(value, int) and value >= 0Equality example:o = Weight(10)
p = Weight(11)
q = Weight(11)

print('o ', o)
print('p ', p)
print('q ', q)
print('o == p ', o == p)
print('o == q ', o == q)
print('p == q ', p == q)
Package: python-varnish
Author:Justin Quick <justquick@gmail.com>, Sandy Walsh <github@darksecretsoftware.com>Version:0.2pip install python-varnish==0.2.1If you are running a version of varnish older than 3.0 then install python-varnish==0.1.2 instead.Varnish is a state-of-the-art, high-performance HTTP accelerator.
For more information checkoutVarnish SiteVarnish provides a simple telnet management interface for doing things like:reloading configurationspurging URLs from cacheview statisticsstart and stop the serverThis Python API takes full advantage of the available commands and can run
across multiple Varnish instances. Here are the features of this python module
(compared topython-varnishadm)Usestelnetlibinstead of raw socketsImplementsthreadingmoduleCan run commands across multiple Varnish instancesMore comprehensive methods, closely matching the management API (purge_*,vcl_*, etc.)UnittestsExample:manager = VarnishManager( ('server1:6082', 'server2:6082') )
manager.run('ping')
manager.run('ban.url ^/secret/$')
manager.run('ban.list')
manager.run('purge.url', 'http://mydomain.com/articles/.*')
manager.close()Testing:python runtests.py
Package: python-varnishadm
Author:Justin Quick <justquick@gmail.com>, Sandy Walsh <github@darksecretsoftware.com>Version:0.2pip install python-varnish==0.2.2If you are running a version of varnish older than 3.0 then install python-varnish==0.1.2 instead.Varnish is a state-of-the-art, high-performance HTTP accelerator.
For more information checkoutVarnish SiteVarnish provides a simple telnet management interface for doing things like:reloading configurationspurging URLs from cacheview statisticsstart and stop the serverThis Python API takes full advantage of the available commands and can run
across multiple Varnish instances. Here are the features of this python module
(compared topython-varnishadm)Usestelnetlibinstead of raw socketsImplementsthreadingmoduleCan run commands across multiple Varnish instancesMore comprehensive methods, closely matching the management API (purge_*,vcl_*, etc.)UnittestsExample:manager = VarnishManager(('server1:6082', 'server2:6082'), 'secret_file_content')
manager.run('ping')
manager.run('ban.url ^/articles/$')
manager.run('ban.list')
manager.run('purge.url', 'http://mydomain.com/articles/.*')
manager.close()Testing:python runtests.py
Package: python-vaultwarden
python-vaultwardenA python client library forvaultwarden.RationaleWhile there are numerousclients for bitwarden, its low-level Python client libraries ecosystem is not well stuffed yet.We atNumberlyare strong users (and supporters) ofvaultwardenand needed a way to integrate admin operations into our automation stack.We took inspiration frombitwardentoolsand leverage from it internally while adding some admin related features so that we can automate vaultwarden administration tasks.Contributions welcomed!ClientsThere are 2 types of clients:One for the vaultwarden admin API, that needs to be authenticated with an admin token.One for the bitwarden API, that needs to be authenticated with the user api keys or user's mail and password. An Owner or Admin user is required to perform admin operations.Thereset_accountandtransfer_account_rightsfrom the Admin client needs a valid Bitwarden client to re-invite the
target user.UsageAdmin clientfromvaultwarden.clients.vaultwardenimportVaultwardenAdminClientclient=VaultwardenAdminClient(url="https://vaultwarden.example.com",admin_secret_token="admin_token")client.invite("john.doe@example.com")all_users=client.get_all_users()client.delete(all_users[0].id)Bitwarden clientfromvaultwarden.clients.bitwardenimportBitwardenAPIClientfromvaultwarden.models.bitwardenimportOrganization,OrganizationCollection,get_organizationbitwarden_client=BitwardenAPIClient(url="https://vaultwarden.example.com",email="admin@example",password="admin_password",client_id="client_id",client_secret="client_secret")org_uuid="550e8400-e29b-41d4-a716-446655440000"orga=get_organization(bitwarden_client,org_uuid)collection_id_list=["666e8400-e29b-41d4-a716-446655440000","888e8400-e29b-41d4-a716-446655440000","770e8400-e29b-41d4-a716-446655440000"]orga.invite(email="new@example.com",collections=collection_id_list,default_readonly=True,default_hide_passwords=True)org_users=orga.users()org_collections:list[OrganizationCollection]=orga.collections()org_collections_by_name:dict[str:OrganizationCollection]=orga.collections(as_dict=True)new_coll=orga.create_collection("new_collection")orga.delete_collection(new_coll.Id)my_coll=orga.collection("my_collection")ifnew_coll:users_coll=my_coll.users()my_coll_2=org_collections_by_name["my_coll_2"]my_user=orga.users(search="john.doe@example.com")ifmy_user:my_user=my_user[0]print(my_user.Collections)my_user.add_collections([my_coll_2.Id])TODOAdd tests form Vaultwarden admin clientRewrite crypto part to remove dependency on bitwardentools and add argon2id supportSupport email + password authenticationSupport end user operationsCiphers management supportMany other things I didn't think of yetCreditsThecrypto partoriginates frombitwardentools.LicensePython-vaultwarden is distributed under the terms of theApache-2.0license.
Package: python_vdx
1. Installpip install python_vdx2. Workspace creationfrom vdx.diagramm import Diagramm
from vdx.shapes import Point

dia = Diagramm(top=Point(1, 11))Note: Point (1, 11) is default point. It points to the upper left corner
of visio page. Also, you should remember that all objects craeted on the
diagramm placed in accordance with the point. So, Shape(startPoint=Point(2, 0))
will be places at Point(3, 11).3. Adding element on the diagramm...
from vdx.shapes import EPCFunction  # EPCFunction is function object in ECP diagramm


## Add several "EPCFunction" objects with the same coordinates
dia.append_shape(EPCFunction())
dia.append_shape(EPCFunction())
dia.append_shape(EPCFunction())
dia.append_shape(EPCFunction())4. Save the diagramm to a file.....

dia.save('some_path_to_save.vdx')Supported objects (at the moment only EPC objects are supported)Function (EPC)Event (EPC)Organization Unit (EPC)Information Material (EPC)Main process (EPC)Component (EPC)Enterprise area (EPC)Process groupXOR (EPC)OR (EPC)AND (EPC)Dynamic connector (EPC)