semvec/pypi-packages huggingface dataset:
ez-zk-client 0.0.3
Using Kazoo to implement specific features of ZooKeeper, such as: program survival monitoring (alive), global configuration, single-point resource lock, and multi-selection resource lock.
Requires Python: >=3.5

# version change
# 0.0.3 add get_children mapping kazoo
# 0.0.2 add ensure_path/exists mapping kazoo
# 0.0.1 fisrt version

# ez_zk_client install
```python
pip install ez_zk_client
```
# example connect/disconnect
```python
from ez_zk_client import ZkClient
client = ZkClient(hosts='localhost:2181')
#client.connect(wait_connected=True)
client.connect()
client.disconnect()
```
# example create_path
```python
client.create_node('/pytest','for pytest')
```

# example create_ephemeral & get value/status
```python
client.alive('/pytest/online','create oneline path, offlne auto disapear')
val,stat =  client.get_data('/pytest/online')
```
# example listen node
```python
def node_data_change(node_path, data):
    print('data change:',data) # new data

client.create_node("/testing/test_listener", 'old data')    
client.add_node_listener("/testing/test_listener", node_data_change)
client.set_data("/testing/test_listener", "new data")
```
# example listen children
```python
def children_change(node_path,data):
    # fire twice time
    print(data) # children list: ['child1'] in first time
    print(data) # children list: ['child1','child2'] in second time

client.ensure_path('/testing/listen_children')
client.add_children_listener('/testing/listen_children',children_change)
client.alive(f'/testing/listen_children/child1')
client.alive(f'/testing/listen_children/child2')
    
```

# example lock single resource
```python
client.alive("/testing/single_resource/ALIVE", 'http://localhost:3388')
locker = client.lock_single_resource("/testing/single_resource/ALIVE")
# locker.path=='/testing/single_resource'
with locker: # auto release
    api,stat = client.get_data(locker.path)
    # access api

```
# example lock pool resource
```python
inserted_path = client.insert_pool_resource('/testing/resource_pool', 'http://localhost:10001')
inserted_path = client.insert_pool_resource('/testing/resource_pool', 'http://localhost:10002')
inserted_path = client.insert_pool_resource('/testing/resource_pool', 'http://localhost:10003')
locker1 = client.use_pool_resource('/testing/resource_pool')
api1,stat = client.get_data(locker.path) # http://localhost:10001
locker2 = client.use_pool_resource('/testing/resource_pool')
api2,stat = client.get_data(locker.path) # http://localhost:10002
locker3 = client.use_pool_resource('/testing/resource_pool')
api3,stat = client.get_data(locker.path) # http://localhost:10003
```
kiwoomapi 0.5.4
Windows COM 기반으로 파이썬 32비트로만 동작하는 키움증권 오픈API 패키지
Requires Python: >=3.8

# KiwoomOpenAPI

Windows COM 기반으로 파이썬 32비트로만 동작하는 키움증권 오픈API 패키지.

KiwoomTraderV2 프로젝트 패키지의 내부 모듈을 독립적인 패키지로 분리하는 작업 완료.




## 사용법

데이터 요청할 때는 패키지의 함수들을 사용해야 한다.

    import kiwoomapi as api
    api.CommConnect()

데이터 수신할 때는 PyQt-QAxWidget 객체인 'OpenAPI'의 pyqtSinal 을 사용해야 한다.

키움증권으로부터 메시지를 수신하기 위해서는 아래와 같이 코드를 작성해야 한다. 

    from kiwoomapi import OpenAPI
    OpenAPI.OnReceiveMessage.connect(YOUR_METHOD) 


로그인 객체 구현 예시:

    from PyQt5.QtWidgets import QApplication
    from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QEventLoop
    import kiwoomapi as api
    from kiwoomapi import OpenAPI
    
    class LoginAPI(QObject):

        LoginSucceeded = pyqtSignal()

        def __init__(self):
            super().__init__()
            OpenAPI.OnReceiveMessage.connect(self.__recv_msg__)
            OpenAPI.OnEventConnect.connect(self.__recv_login__)

        @pyqtSlot(str, str, str, str)
        def __recv_msg__(self, ScrNo, RQName, TrCode, Msg):
            print([ScrNo, RQName, TrCode, Msg])
        
        @pyqtSlot(int)
        def __recv_login__(self, ErrCode):
            print(ErrCode)
            if ErrCode == 0:
                self.LoginSucceeded.emit()
            else:
                print('로그인 실패)
            self._event_loop.exit()

        def login(self):
            api.CommConnect()
            self._event_loop = QEventLoop()
            self._event_loop.exec()


    app = QApplication(sys.argv)
    
    LoginAPI = LoginAPI()
    LoginAPI.login()

    sys.exit(app.exec())





## 개발 가이드 문서

[로그인-버전처리\기본설명](/Docs/로그인-버전처리/기본설명.md)

[모의투자](Docs\모의투자.md)

[로그인-버전처리](Docs\로그인-버전처리\기본설명.md)

[조건검색](Docs\조건검색\기본설명.md)

[조회와-실시간데이터처리](Docs\조회와-실시간데이터처리\기본설명.md)

[주문과-잔고처리](Docs\주문과-잔고처리\기본설명.md)

[OpenAPI-오류코드](Docs\OpenAPI-오류코드.md)

[OpenAPI-사용제한](Docs\OpenAPI-사용제한.md)
aamp-app 0.0.1.30
AAMP App
Requires Python: >=3.10

## AAMP User Interface

### An app to control the automated additive manufacturing platform.

#### Installation

To use this app, you need to install Python (version 3.10 or higher).

In a terminal window in a new directory, run `pip install aamp_app` or `pip install --upgrade aamp_app` to install the app. Use the latter one to upgrade the app after it's installed. All dependencies will be installed with it. You may wish to use a virtual python environment if you don't want this app or its dependencies to interfere with your current system. On Mac or Linux-based systems, do this by running the following commands before installing:

`pip install virtualenv`: This line installs the virtualenv package which allows you to create virtual python environments.

`virtualenv venv`: This line creates a virtual environment (called `venv`) in the current directory. This will create a new folder (called `venv`) with the environment data.

`source venv/bin/activate`: This line activates the virtual environment. After activating the virtual environment, you should be able to see `(venv)` in your terminal window. If you close the terminal window/tab, you will have to execute this command to activate the environment again before using the app.

#### Usage

To start the app, run `aamp_app`. Enter the database user credentials for MongoDB. These credentials will be saved as plain text in a text file (called `pw.txt`) in the same directory. Therefore, this app should only be used on trusted computers. If the connection to the database cannot be established using the provided credentials, you will be required to run `aamp_app` again to retry. To delete the user credentials, simply delete the `pw.txt` file.

#### Device Requirements

Most devices should be able to connect to the app without any problems. However, certain devices require some drivers/software to create a connection. Due to the nature of the specific drivers/software, they must be installed separately.

-   [Thorlabs Devices (APT or Kinesis)](https://www.thorlabs.com/software_pages/viewsoftwarepage.cfm?code=Motion_Control)

#### Miscellaneous Commands (for dev)

Package app:

`python3 setup.py sdist bdist_wheel`

Upload to pip:

`twine upload --skip-existing dist/*`