Saravanan666/pypi-org huggingface dataset:
Package: py-hasami
HasamiHasami is a tool to perform sentence segmentation on japanese text.In addition to simply splitting on sentence-ending markers like！？。it will treat runs of sentence-ending characters as a single sentence ending.It will not split enclosed sentences, i.e. those in quotes or parentheses.It can be configured with custom sentence-ending markers and enclosures
in case the defaults don't cover your needs.You can define exceptions for when not to split sentences.Installation:warning: Currently in progress of sorting out a PyPI name conflict so this might change in the future.pipinstallpy-hasamiUsageA simple command line interface is provided to use the functionality
without having to write your own script. Input is read fromstdinor from a file.$echo"これが最初の文。これは二番目の文。これが最後の文。"|teeinput.txt|hasami
これが最初の文。
これは二番目の文。
これが最後の文。

$hasamiinput.txt
これが最初の文。
これは二番目の文。
これが最後の文。To use in your code:importhasamihasami.segment_sentences('これが最初の文。これは二番目の文。これが最後の文。')# => ['これが最初の文。', 'これは二番目の文。', 'これが最後の文。']More complex examples will follow soon, please refer to the test cases in the meantime.LicenseLicensed under the BSD-3-Clause License
Package: pyhashlookup
PyHashlookupThis is the client API forhashlookup.InstallationpipinstallpyhashlookupUsageCommand lineusage:hashlookup[-h][--queryQUERY]Queryhashlookup

optionalarguments:-h,--helpshowthishelpmessageandexit--queryQUERYHash(md5orsha1)tolookup.LibrarySeeAPI Reference
Package: pyhashring
CI status:This library is a thin python wrapper around hash ring implementation inhttps://github.com/chrismoos/hash-ringInstallingpyhashring can be installed via pypi:pip install pyhashringBuildingGet the source:git clone https://github.com/blackwithwhite666/pyhashring.gitCompile extension:python setup.py build_ext --inplaceUsageGet node by key:from pyhashring import HashRing
h = HashRing()
h.add(b'SlotA')
h.add(b'SlotB')
h.find('keyA')
>>> 'SlotB'
h.find('keyB')
>>> 'SlotA'Running the test suiteUse Tox to run the test suite:toxChangelog0.1.0 (initial release)Prototype.
Package: pyhashutils
Copyright (c) 2018 Jérémie DECOCK (www.jdhp.org)Web site:http://www.jdhp.org/software_en.html#hashutilsOnline documentation:http://hashutils.readthedocs.orgSource code:https://github.com/jeremiedecock/python-hash-utilsIssue tracker:https://github.com/jeremiedecock/python-hash-utils/issueshashutils on PyPI:https://pypi.python.org/pypi/pyhashutilsDescriptionPrint or check MD5 and SHA checksumsNote:This project is still in beta stage, so the API is not finalized yet.DependenciesPython >= 3.0InstallationGnu/LinuxYou can install, upgrade, uninstall hash-utils with these commands (in a
terminal):pip install --pre pyhashutils
pip install --upgrade pyhashutils
pip uninstall pyhashutilsOr, if you have downloaded the hash-utils source code:python3 setup.py installWindowsYou can install, upgrade, uninstall hash-utils with these commands (in acommand prompt):py -m pip install --pre pyhashutils
py -m pip install --upgrade pyhashutils
py -m pip uninstall pyhashutilsOr, if you have downloaded the hash-utils source code:py setup.py installMacOSXYou can install, upgrade, uninstall hash-utils with these commands (in a
terminal):pip install --pre pyhashutils
pip install --upgrade pyhashutils
pip uninstall pyhashutilsOr, if you have downloaded the hash-utils source code:python3 setup.py installDocumentationOnline documentation:http://hashutils.readthedocs.orgAPI documentation:http://hashutils.readthedocs.org/en/latest/api.htmlExample usageTODOBug reportsTo search for bugs or report them, please use the hash-utils Bug Tracker at:https://github.com/jeremiedecock/python-hash-utils/issuesLicenseThis project is provided under the terms and conditions of theMIT License.
Package: pyhassbian
pyhassbianA python module to interact with hassbian-config.InstallpipinstallpyhassbianVerify that hassbian-config is installedimportpyhassbianpyhassbian.is_installed()# Sample output: TrueGet a list of all available suitesimportpyhassbianprint(pyhassbian.get_suites())# Sample output: ['hue', 'samba', 'homeassistant']Get the version number of hassbian-configimportpyhassbianprint(pyhassbian.get_version())# Sample output: '0.9.3'Install or upgrade a suite with hassbian-configimportpyhassbianpyhassbian.manage_suite('install','hue')pyhassbian.manage_suite('upgrade','homeassistant',version='0.80.3')pyhassbian.manage_suite('upgrade','hassbian-script',dev=True)Upgrade the base OSimportpyhassbianpyhassbian.os_upgrade()
Package: pyhasse.acm
Module: pyhasse.acmFree software: MIT licenseDocumentation:https://pyhasse.orgFeaturesCalculate:antichain matrix (ACM)rowsum of ACMcolsum of ACMHistory0.2.8 (2020-08-16)improved testingimproved doc stringsrenamed some variables0.2.7 (2019-03-27)improved description for better search results with “pip search pyhasse”moduel refactured based on pyhasse.core0.2.6 (2019-03-24)URL for repository added0.2.5 (2019-03-21)classifier addedwrong pointer corrected0.2.4 (2018-03-05)set long_description_content_type to text/x-rst0.1.0 (2018-06-10)First version
Package: pyhasse.chain
Module: pyhasse.chainFree software: MIT licenseDocumentation:https://pyhasse.orgFeaturesCalculate:Identify the set of mutually comparable objects: a chainTypical results: list of objects of a chain, the length and……number of chains between a starting and an end pointHistory0.3.0 (2019-08-16)improved testingimproved doc stringsrenamed some variables0.2.7 (2019-03-27)improved desecription for better search results with “pip search pyhasse”0.2.6 (2019-03-24)URL for repository added0.2.5 (2019-03-21)classifier addedwrong pointer corrected0.2.4 (2018-03-05)set long_description_content_type to text/x-rst0.1.0 (2018-06-10)First version
Package: pyhasse.core
Module: pyhasse.coreFree software: MIT licenseDocumentation:https://pyhasse.orgFeaturesBasic module for all pyhasse modules:import data from csv filesDisplay parts of the dataset after import:AttributesObjectsDataCalculate:The mathematical of the following items is given by the theory of
partially ordered sets (posets), a discipline of Discrete
Mathematics. it combines graph theory, algebra and combinatorics.
In pyhasse a statistical point of view is taken.Zeta matrixCover matrixLevelsEquivalence classesDistancesHistory0.2.3 (2021-01-07)removed some print statements0.2.2 (2020-08-16)general refactoring0.2.0 (2020-06-06)general refactoringcode is splitted in:csv_io.py # read data from csv-filesmatrix.py # calculate a reduced matrixorder.py  # special operation based on a reduced matrix and zeta matrixmoved the code from bitbucket to gitlab0.1.8 (2019-03-27)removed function: get_downset_connections from module hddataimproved desecription for better search results with “pip search pyhasse”0.1.7 (2019-03-24)README improvedtests for order module addedURL for repository added0.1.6 (2019-03-09)README improvedClassifier added0.1.5 (2019-03-05)set long_description_content_type to text/x-rst0.1.4 (2018-12-26)css class removed from output as HTML table, best output for Jupyter notebooks0.1.3 (2018-12-22)new test for CSV import with hypothesis0.1.2 (2018-12-03)license changed to MITchanged the format of the date in this file0.1.1 (2018-11-29)documentation improved0.1.0 (2018-11-06)first release
Package: pyhasse.fuzzy
Free software: MIT licenseDocumentation:https://pyhasse.orgFeaturesCalculate:Free software: MIT licenseFeaturesTODOCreditsThis package was created withCookiecutter.DocumentationDokumentation can be found atpyhasse.org.SourcecodeIs available atBitbucket.hg clone ssh://hg@bitbucket.org/pyhasse/fuzzyHistory0.1.0 (2019-06-01)First release on PyPI.
Package: pyhasse.lpom
Module: pyhasse.lpomFree software: MIT licenseDocumentation:https://pyhasse.orgFeaturesLPOM stands for Local Partial Order Model.LPOM0 and LPOMext are approximations to calculate the
average height, hav, of partially ordered sets (posets).Calculate:Averaged heightAveraged height extendedObjects averaged height0Objects averaged height extendedHistory0.2.1 (2020-12-30)extended version after refactoring0.1.3 (2019-03-26)Better module description0.1.2 (2019-03-09)Classifier added0.1.0 (2019-03-01)First release on PyPI.
Package: pyhasse.spyout
Module: pyhasse.spyoutFree software: MIT licenseDocumentation:https://pyhasse.orgFeaturesCalculate:Statistical characteristicsConnectivitiesList of chainsConflictsHistory0.3.1 (2021-01-08)refactored version0.2.7 (2019-03-27)improved desecription for better search results with “pip search pyhasse”0.2.6 (2019-03-24)URL for repository added0.2.5 (2019-03-21)classifier addedwrong pointer corrected0.2.4 (2018-03-05)set long_description_content_type to text/x-rst0.1.0 (2018-06-10)First version
Package: pyhatchbabyrest
Hatch Baby Rest Python BindingsThis library will allow you to control aHatch Baby Rest device(note, /not/ the Hatch Baby Rest+, which is Wi-Fi enabled) overBLE.RequirementsThe pygatt backend was tested on a Raspberry Pi 3 Model B Rev 1.2, but should work on any Unix system that is compatible with theGATTToolBackendofpygatt.The bleak (async) backend was tested on a 2019 MacBook Pro, but should work on any system thatbleakis compatible with.Installationpip install pyhatchbabyrestExamplespygatt backend (synchronous)In[1]:frompyhatchbabyrestimportPyHatchBabyRestIn[2]:rest=PyHatchBabyRest()In[3]:rest.powerOut[3]:FalseIn[4]:rest.power_on()In[5]:rest.volumeOut[5]:30In[6]:rest.set_volume(10)In[7]:rest.volumeOut[7]:10In[8]:rest.set_color(255,0,0)In[9]:rest.colorOut[9]:(255,0,0)In[10]:rest.set_brightness(100)In[11]:rest.set_sound(PyHatchBabyRestSound.stream)In[12]:rest.soundOut[12]:<PyHatchBabyRestSound.stream:2>In[13]:rest.set_color(*PyHatchBabyRest.COLOR_GRADIENT)In[14]:rest.connectedOut[14]:TrueIn[15]:rest.disconnect()In[16]:rest.connectedOut[16]:Falsebleak backend (async and a little more portable)In[1]:frompyhatchbabyrestimportPyHatchBabyRestAsyncIn[2]:rest=PyHatchBabyRestAsync()In[3]:importasyncioIn[4]:loop=asyncio.get_event_loop()In[5]:r=loop.run_until_completeIn[6]:r(rest.power_on())In[7]:r(rest.set_volume(100))In[8]:r(rest.set_volume(10))In[9]:r(rest.power_off())In[10]:rest.soundOut[10]:<PyHatchBabyRestSound.noise:3>NOTE: Using PyHatchBabyRestAsync from async codeThe constructor, by default, executes directly against the event loop. This doesn't work if it is executed within an already running coroutine. To construct the client, all async calls must be done outside of the constructor.This has been all wrapped up in a function for ease of use.importasynciofrompyhatchbabyrestimportconnect_asyncasyncdefmain():rest=awaitconnect_async()awaitrest.power_on()rest=asyncio.run(main())CreditsHuge thanks to @Marcus-L for their repo atGitHub - Marcus-L/m4rcus.HatchBaby.Rest: Control Hatch Baby Rest devices using Bluetooth LEwhich did all the hard work of finding the right characteristics, commands, etc.
Package: pyhatchbabyrest-hass
Hatch Baby Rest Python BindingsThis library will allow you to control aHatch Baby Rest device(note, /not/ the Hatch Baby Rest+, which is Wi-Fi enabled) overBLE.RequirementsThe pygatt backend was tested on a Raspberry Pi 3 Model B Rev 1.2, but should work on any Unix system that is compatible with theGATTToolBackendofpygatt.The bleak (async) backend was tested on a 2019 MacBook Pro, but should work on any system thatbleakis compatible with.Installationpip install pyhatchbabyrestExamplespygatt backend (synchronous)In[1]:frompyhatchbabyrestimportPyHatchBabyRestIn[2]:rest=PyHatchBabyRest()In[3]:rest.powerOut[3]:FalseIn[4]:rest.power_on()In[5]:rest.volumeOut[5]:30In[6]:rest.set_volume(10)In[7]:rest.volumeOut[7]:10In[8]:rest.set_color(255,0,0)In[9]:rest.colorOut[9]:(255,0,0)In[10]:rest.set_brightness(100)In[11]:rest.set_sound(PyHatchBabyRestSound.stream)In[12]:rest.soundOut[12]:<PyHatchBabyRestSound.stream:2>In[13]:rest.set_color(*PyHatchBabyRest.COLOR_GRADIENT)In[14]:rest.connectedOut[14]:TrueIn[15]:rest.disconnect()In[16]:rest.connectedOut[16]:Falsebleak backend (async and a little more portable)In[1]:frompyhatchbabyrestimportPyHatchBabyRestAsyncIn[2]:rest=PyHatchBabyRestAsync()In[3]:importasyncioIn[4]:loop=asyncio.get_event_loop()In[5]:r=loop.run_until_completeIn[6]:r(rest.power_on())In[7]:r(rest.set_volume(100))In[8]:r(rest.set_volume(10))In[9]:r(rest.power_off())In[10]:rest.soundOut[10]:<PyHatchBabyRestSound.noise:3>NOTE: Using PyHatchBabyRestAsync from async codeThe constructor, by default, executes directly against the event loop. This doesn't work if it is executed within an already running coroutine. To construct the client, all async calls must be done outside of the constructor.This has been all wrapped up in a function for ease of use.importasynciofrompyhatchbabyrestimportconnect_asyncasyncdefmain():rest=awaitconnect_async()awaitrest.power_on()rest=asyncio.run(main())CreditsHuge thanks to @Marcus-L for their repo atGitHub - Marcus-L/m4rcus.HatchBaby.Rest: Control Hatch Baby Rest devices using Bluetooth LEwhich did all the hard work of finding the right characteristics, commands, etc.
Package: pyhavamal
PyHavamalTheHÃ¡vamÃ¡lis an Old Norse poem in which each stanza is a saying. The topics range from proper feast decorum to dealing with sorcerers. PyHavamal provides easy access to the text of atranslation by Henry Adams Bellows.InstallationUsepip install pyhavamal.UseThere are 165 stanzas in the Bellows translation numbered 1-165.all()returns a list of all stanzas. Passnumbered=Trueto return a dict of numbered stanzas.find_by_number(n)returns stanza n (where n is the stanza number and not zero-based).random()returns a random stanza.range_by_number(a, b)returns a list of stanzas from a to b inclusive (where a and b are stanza numbers and not zero-based).LicenseMIT License
Package: pyhaversine
pyHaversineAn simple project built withpybind11.
This requires Python 3.6+; for older versions of Python, check the commit
history.InstallationUsepip install pyhaversinedirectlyOr, manually:clone this repositorypip install ./pyhaversineLicensepybind11 is provided under a BSD-style license that can be found in the LICENSE
file. By using, distributing, or contributing to this project, you agree to the
terms and conditions of this license.Test callimportpyhaversinepyhaversine.haversine((1.0,2.0),(3.0,4.0))
Package: pyhaversion
pyhaversionGet the latest Home Assistant version from various sources.Installationpython3-mpipinstallpyhaversionLook at the fileexample.pyfor a usage example.ContributeAllcontributions are welcome!Fork the repositoryClone the repository locally and open the devcontainer or use GitHub codespacesDo your changesLint the files withmake blackEnsure all tests passes withmake testEnsure 100% coverage withmake coverageCommit your work, and push it to GitHubCreate a PR against themainbranch
Package: py-ha-ws-client
py-ha-ws-clientA Python client to make it easy to connect and consume data from theHome Assistant web socket API.Examplefrom time import sleep
from py_ha_ws_client.client import HomeAssistantWsClient

hostname = "<Home Assistant IP>"
#token = "<from Home Assistant>"

client = HomeAssistantWsClient.with_host_and_port(token, hostname)
# Or if in use in a Home Assistant Add on
# client = HomeAssistantWsClient.in_ha_addon()

client.connect()

while not client.connected():
    sleep(1)

# Get all the states as a list
print("Get all States")
states = client.get_states()
print("Print one state as an example")
print(states[0])


entity_id = "media_player.amplifier"

# Define a call back
def my_callback(entity_id, message):
    print(entity_id, message)

# Get the state of a single entity
state = client.get_state(entity_id)
print(state)    

# Register for updates for a specfic entity
client.subscribe_to_trigger(
    entity_id="media_player.studio_amplifier",
    callback=my_callback,
)

sleep(10)

# Send a turn on command
client.turn_on(
    entity_id=entity_id
)

sleep(10)

# Send a change volume command
client.call_service(
    domain="media_player",
    service="volume_set",
    entity_id=entity_id,
    service_data={
        "volume_level" : "0.50"
    }
)

sleep(10)

# Send a turn off command
client.turn_off(
    entity_id=entity_id
)

sleep(60)TODOThis is a work in progress there are a lot of TODOs in the code.
Package: pyhaystack
What is this ?Pyhaystack is a module that allow python programs to connect to a haystack server
using semantic data model for buildings (project-haystack).Browse a campus, building, floor… find VAV boxes, AHU units, etc. Then extract history
data from them and get the results ready for analysis using pandas or your own database implementation.Which clients are implemented ?Actually, connection can be established with :Niagara4by TridiumNiagaraAXby TridiumWideSkybyWidesky.cloudSkysparkby SkyFoundry (version 2 and 3+)Connection to Niagara AX or Niagara 4 requires thenHaystackmodule by J2 Innovations to be installed
and properly configured on your Jace. Refer to documentation of nHaystack for details.How do I install pyhaystack ?pip install pyhaystackOr you can also git clone the develop branch and usepython setup.py installNoteSome users reported problems when installing pyhaystack using the Python version
provided by their OS (Mac OS users). We recommend to try the virtual environment
approach when you are unsure about the python version our modules dependencies.Using virtual envYou can find more information on how to usevirtualenvbut here is a short way of making it work.sudo pip install virtualenv
mkdir your project folder
cd project
virtualenv venv
source venv/bin/activateNoteOnce you are in your virtual env DO NOT use sudo to pip install.
(in fact, this is the part that made me think of permission issue as I read somewhere that we should never sudo pip install anything)So now you are in your virtual env (it’s in parenthesis in the console) and youpip install requests
pip install hszinc
pip install pyhaystack(note that this time you won’t see any weird message when trying to install pandas and you need xcode to perform the install….)
You are now able toimport hszinc
hszinc.MODE_ZINC
from pyhaystack.client.skyspark import SkysparkHaystackSessionWhat is project-haystack ?As stated in the web site“Project Haystackis an open source initiative to streamline
working with data from the Internet of Things. We standardize
semantic data models and web services with the goal of making
it easier to unlock value from the vast quantity of data being
generated by the smart devices that permeate our homes, buildings,
factories, and cities. Applications include automation, control,
energy, HVAC, lighting, and other environmental systems.”—Project-HaystackActual implementationPyhaystack is robust and will be ready for asynchronous development.We have chosen a state machine approach with observer pattern. See the docs for
more informations.This implementation has been mostly supported byWidesky.cloudandServisys. We are hoping
that more people will join us in our effort to build a well working open-source software
that will open the door of building data analysis to Python users.DependencyPyhaystack highly depends onhszincwhich is a special parser for zinc encoded data.
Zinc was created forproject-haystackas a CSV replacement.For analysis, we also suggest usingPintto deal with units. It will bring a lot of possibilities
to pyhaystack (ex. unit conversion)
Package: pyhazard
HAZARDHAZARD is a repository that contains information about the python packagepyhazard, which seeks to facilitate the calculation of seismic hazard by facilitating different GMPEs.Autor:Benjamín LyonVersion: 1.0.1Fecha: 22 de febrero del 2023RequisitosPython 3.8+numpyscipyEjemplosimport numpy as np
from pyhazard.gmpes import I2014_REV

To   = 0
M    = [5, 6, 7, 8]
Rrup = 100*np.ones((4 ,1))
Rhyp = 110*np.ones((4 ,1))
Ztor = 15* np.ones((4, 1))
Zhyp = 25* np.ones((4, 1))
Vs30 = 200

lny, sigma, tau, phi = I2014_REV(To, M, Rrup, Rhyp, Ztor, Zhyp, Vs30)GithubEl paquete se puede encontrar con las últimas versiones en el repositorioHAZARD.
Package: pyhaze
pyhazeFast smoothing of per-vertex data on triangular meshes for Python.AboutThis package package performs smoothing of per-vertex data ontriangular meshes. Such smoothing is typically used to reduce high-frequency noise and improve signal-to-noise ration (SNR). The algorithm for iterative nearest-neighbor smoothing is trivial, but involves nested tight loops, which are very slow in Python, so this package calls into C++ viapybind11to achieve high performance.Fig.1:Noisy per-vertex data on a brain mesh (left), and the same data after smoothing (right). White represents NA values.This is a Python implementation of thehaze package for R. The haze website offers a more detailed explanation of the motivation and use cases.InstallationVia pip:pipinstallpyhazeAlternatively, if you want to useconda:condainstall-cdfspspiritpyhazeUsageExample 1: Smooth data on a mesh given as a vertex index listHere is a simple example using thepyhaze.smooth_pvdfunction.importpyhazeimportnumpyasnpvertices,faces=pyhaze.construct_cube()pvd_data=np.arange(len(vertices),dtype=float)smoothed_data=pyhaze.smooth_pvd(vertices,faces,pvd_data.tolist(),num_iter=5)A note on the mesh representation used, so you can replace theverticesandfaceswith your own triangular mesh:verticesis a list of lists offloat, with dimensionN, 3forNvertices. So the outer list has lengthN. The 3 columns (length of all inner lists) are the x,y,z coordinates for each vertex.facesis a list of lists ofint, with dimensionM, 3forMfaces. So the outer list has lengthM. The 3 columns (length of all inner lists) are the 3 vertices (given as indices intovertices) making up the respective triangular face.Example 2: Smooth data on a mesh given as an adjacency listFor very large meshes, it pays off to pre-compute the adjacency list of the mesh with a fast method, such as with theiglPython package, which provides Python bindings for libigl, and use thepyhaze.smooth_pvd_adjfunction.importpyhazeimportnumpyasnpimportiglvertices,faces=pyhaze.construct_cube()pvd_data=np.arange(len(vertices),dtype=float)faces_igl=np.array(faces).reshape(-1,3).astype(np.int64)mesh_adj=igl.adjacency_list(faces_igl)# Compute adjacency list with igl.res=pyhaze.smooth_pvd_adj(mesh_adj,pvd_data.tolist(),num_iter=5)See theunit testsfor more examples.
Package: pyhbasecli
pyhbasecli基于thrift2的hbase客户端author: hszkeywords: hbase,thrift特性可以连接处理阿里云hbase使用的是thrift2版本支持http方式连接python友好的接口设计安装pipinstallpyhbasecli例子withHBaseCli(url=URL,headers={"ACCESSKEYID":"root","ACCESSSIGNATURE":"root"})asclient:nsinfo=client.show_namespaces()print(nsinfo)todo增加socket方式连接0.0.2增加了对mutation的支持put操作增加了额外参数丰富了文档统一了TTableName的输入,现在会全部转换为bytes统一了TColumn的输入,现在全部会转换为bytes0.0.1项目创建
MIT LicenseCopyright (c) 2022 Python-ToolsPermission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.