Saravanan666/pypi-org huggingface dataset:
Package: kowalsky
Kowalsky, analysis!A simple package for handful ML things and more.What's new? [v0.0.39]addfeaturepackage with two types of analysis + support для остальных функцийRecursive Feature EliminationSequential Feature Selectionimprove optimize:EarlyStoppingmechanismoptimization graphmultitasks withn_jobs=-1addlogspackageWhat's inside?analysis- method for evaluation of specified model with
given dataframe. Withexport_test_set=Trueit exports
ready for submission predictions.df - module for working with dataframe:corr- sort all correlated features.handle_outliers- fill or drop columns with outliers.log_transform- transform columns with log function.group_by_mean- make additional columns with aggregated meangroup_by_max- make additional columns with aggregated maxgroup_by_min- make additional columns with aggregated minapply_with_progress- apply heavy function for each row of dataset.scale- scale columns with Standard of MinMax scalerskaggle:submit- make submit-file for kaggle based on samplelogs:profile_memory- logs all heavy variablesmake_pretty_pyplot- makes pyplot look better :)optuna - handful methods for working with optuna:optimize- optimize model with given dataframeoptimize_super_learner- optimize super learner configuration
with given set of models and set of heads (meta_model)colab:csv- read csv file located at Google Drive with
specified idpath- get path to Google Drive filefeature:rfe_analysis- Recursive Feature Elimination analysissfs_analysis- Sequential Feature Selection analysisWhat's next?Useoptunafor searching the best feature amountAdd file logger to track the progress inJupterLabExample:!pip install kowalsky --upgrade
from kowalsky.optuna import optimize
optimize('RFR',
         path='../input/project/feed.csv',
         scorer='acc',
         y_label='y_label',
         trials=3000)Avaliable models:Gradient Boosts'xgbR': XGBRegressor
    'xgbC': XGBClassifier
    'lgbR': LGBMRegressor
    'lgbC': LGBMClassifierTrees'rfR': RandomForestRegressor
    'rfC': RandomForestClassifier
    'dtR': DecisionTreeRegressor
    'dtC': DecisionTreeClassifier
    'etR': ExtraTreeRegressor
    'etC': ExtraTreeClassifierEnsemble'baggC': BaggingClassifier
    'baggR': BaggingRegressor
    'adaR': AdaBoostRegressor
    'adaC': AdaBoostClassifier
    'cbR': CatBoostRegressor
    'cbC': CatBoostClassifierKNeighbors'knC': KNeighborsClassifier
    'knR': KNeighborsRegressorSVM'svR': SVR
    'svC': SVC
Package: ko-ww-stopwords
ko-ww-stopwordsThis is a set of whole-word (independent) stop words in Korean. Dependent stop words, on the other hand, are difficult to identify without using a part-of-speech tagger, but it is easy to identify whole-word (independent) stop words.Code Samplefrom ko_ww_stopwords.stop_words import ko_ww_stop_words
from ko_ww_stopwords.tools import is_stop_word, strip_outer_punctprint(ko_ww_stop_words)#is_stop_word(word)
#Returns true if word is a whole-word stop word.print("우선 is_stop_word -> {}".format(is_stop_word("우선")))print("서울 is_stop_word -> {}".format(is_stop_word("서울")))#strip_outer_punct(word)
#Strips leading and trailing punctuation marks from word.raw_str = "(우선)"print("raw_str is_stop_word -> {}".format(is_stop_word(raw_str)))normalized_str = strip_outer_punct(raw_str)print("normalized_str is_stop_word -> {}".format(is_stop_word(normalized_str)))Other PackagesIf you need a Korean sentence tokenizer, please seehttps://github.com/Rairye/kr-sentence
Package: koyash
Koyash: A Static Website GeneratorThis is a Python app to create your own static websites.Koyash is inspired by Jekyll. My whole career consists of times where I've found WEB incredibly fascinating yet almost each time I try to get into a framework I find myself lost in the syntax and the rules. Koyash provides a very easy to use static website generation framework to everyone.The Basic StructureThere is one main component in KoyashA Page.Manually crafting HTML pages is bothersome and rarely practiced nowadays. Instead of killing the creative process by making someone try to center adivfor hours, Koyash provides a basic config system for your pages, so you can just select aLayout, do some customization and add your content.
Package: koza
Koza - a data transformation frameworkDocumentationDisclaimer: Koza is in beta - we are looking for testers!OverviewTransform csv, json, yaml, jsonl, and xml and converting them to a target csv, json, or jsonl format based on your dataclass model.Koza also can output data in theKGX formatWrite data transforms in semi-declarative PythonConfigure source files, expected columns/json properties and path filters, field filters, and metadata in yamlCreate or import mapping files to be used in ingests (eg id mapping, type mappings)Create and use translation tables to map between source and target vocabulariesInstallationKoza is available on PyPi and can be installed via pip/pipx:[pip|pipx] install kozaUsageNOTE: As of version 0.2.0, there is a new method for getting your ingest'sKozaAppinstance. Please see theupdated documentationfor details.See theKoza documentationfor usage informationTry the ExamplesValidateGive Koza a local or remote csv file, and get some basic information (headers, number of rows)kozavalidate\--filehttps://raw.githubusercontent.com/monarch-initiative/koza/main/examples/data/string.tsv\--delimiter' 'Sending a json or jsonl formatted file will confirm if the file is valid json or jsonlkozavalidate\--file./examples/data/ZFIN_PHENOTYPE_0.jsonl.gz\--formatjsonlkozavalidate\--file./examples/data/ddpheno.json.gz\--formatjsonTransformRun the example ingest, "string/protein-links-detailed"kozatransform\--sourceexamples/string/protein-links-detailed.yaml\--global-tableexamples/translation_table.yaml

kozatransform\--sourceexamples/string-declarative/protein-links-detailed.yaml\--global-tableexamples/translation_table.yamlNote:
Koza expects a directory structure as described in the above examplewith the source config file and transform code in the same directory:.
├── ...
│   ├── your_source
│   │   ├── your_ingest.yaml
│   │   └── your_ingest.py
│   └── some_translation_table.yaml
└── ...
Package: kozai
# KozaiKozai is a Python package to evolve hierarchical triples in the secular
approximation.  Hierarchical triples may be evolved either using the
Delaunay formalism (Naoz et al. 2013b) or the vectorial formalism (Katz et
al. 2011).  The quadrupole, octupole, and hexadecapole terms of the
Hamiltonian may be toggled to be included (or not) in the equations of
motion.  Post-Newtonian terms may also be toggled to include both
relativistic precession (PN 1) and gravitational radiation (PN 2.5) using
terms from Blaes et al. (2002).The package provides a TripleDelaunay object which may be integrated using
the Delaunay orbital elements and a TripleVectorial which may be integrated
using the eccentricity and angular momentum vectors.  This allows the
integration to occur within the context of an external Python program.The underlying integrator is from the SciPy ODE package.  By default this
package uses VODE as its integration algorithm, but the algorithm may be
changed to any of the other integration algorithms supported by the SciPy
ODE package.## InstallationThe Kozai package is available on PyPI and can be installed with pip:` pip install kozai `Or, if you do not have the permissions to run the above:` pip install--userkozai `## TutorialAn IPython notebook tutorial is in the docs folder.  The tutorial can be
also be accessed online [here.][1]Note that you will need to separately installmatplotlibto run the tutorial
if you don’t have it installed already.matplotlibwill be installed if you
install therequirements-dev.txtfile described below.## DevelopmentIf you want to do any development on thekozaipackage it can help to install
the dependencies in therequirements-dev.txtfile.  If you are in the root
directory of thekozairepository you can do this as follows:`sh pip install-rrequirements-dev.txt`## References[Antognini, 2015, ArXiv 1504.05957][5][Blaes, O., Lee, M.H., & Socrates, A., 2002, ApJ, 578, 775][2][Katz, B., Dong, S., & Malhotra, R., 2011, PhRvL, 107, 181101][3][Naoz, S., Farr, W.M., Lithwick, Y., Rasio, F.A., & Teyssandier, J., 2013b,
MNRAS, 431, 2155][4][1]:http://nbviewer.ipython.org/url/www.astronomy.ohio-state.edu/~antognini/kozai_tutorial.ipynb[2]:http://adsabs.harvard.edu/abs/2002ApJ…578..775B[3]:http://adsabs.harvard.edu/abs/2011PhRvL.107r1101K[4]:http://adsabs.harvard.edu/abs/2013MNRAS.431.2155N[5]:http://arxiv.org/abs/1504.05957
Package: kozinaki
# OverviewKozinaki is an OpenStack hybrid/multi-cloud driver which aims to provide full lifecycle management of public cloud resource (AWS, Azure, GCP) using OpenStack. We beleive Kozinaki will enable true hybrid/multicloud OpenStack use case and provide the uniformity in using public clouds resources through versatile community developed OpenStack APIs and CLI. With Kozinaki you don’t have to choose one provider - local or public, but you can pick based on on performance, price, and avilability while preserving time and money investments in skills and tools.Kozinaki is completely pluggable into OpenStack without requiring any change to the code of core OpenStack components. The driver is modular, so adding new cloud providers is fast. Its architecture relies on provider developed SDKs to interface with APIs.# Supported functionalitySupported function   | Nova command  | AWS | Azure             | GCP |
——————– | :———–: | :-: | :—————: | :-: |
Create               | boot          |  +  | +                 |  +  |
Delete               | delete        |  +  | +                 |  +  |
Stop                 | stop          |  +  | +                 |  +  |
Start                | start         |  +  | +                 |  +  |
Reboot               | reboot        |  +  | +                 |  +  |
Get instance details | show          |  +  | +                 |  +  |
List instances       | list          |  +  | +                 |  +  |
Create snapshot      | image-create  |  +  | not supported     |  +  |
Resize               | resize        |  +  | not supported     |  +  |
Add disk             | volume-attach |  +  | in progress       |  +  |
Remove disk          | volume-detach |  +  | in progress       |  +  |# Kozinaki supportWe are glad to help with any issues that you have with Kozinaki viakozinaki@compu-nova.comand Skype @ compu-nova.# DocumentationPlease seehttps://github.com/compunova/kozinaki/wiki
Package: kozip
KoZIPPython library for converting Korean ZIP code to address우편번호를 (도로명)주소로 변환해 주는 파이썬 라이브러리입니다. 현 우편번호(5자리), 구 우편번호(6자리) 모두 사용 가능합니다.본 라이브러리는우체국 홈페이지에 고시된 정보를 바탕으로 만들어졌습니다.우편번호고시일자다운로드 링크현 우편번호 (5자리)2021.11.03.다운로드구 우편번호 (6자리)2015.08.27.다운로드Quick StartfromkozipimportKoZIPkozip=KoZIP()kozip.ZIPtoAddr("08826",depth="full")# 출력 :# ['서울특별시 관악구 관악로 1 (신림동)']kozip.ZIPtoAddr("16419",depth="full")# 출력 :# ['경기도 수원시 장안구 서부로 2066 (천천동)',#  '경기도 수원시 장안구 일월로90번길 19 (천천동)',#  '경기도 수원시 장안구 일월로90번길 7 (천천동)']EnvironmentPython 3 이상How to installpip install kozipMethodsKoZIP.ZIPtoAddr(zipcode, depth, format)우편번호를 입력받아 주소로 변환하는 메소드zipcode: 우편번호현 우편번호(5자리), 구 우편번호(6자리) 모두 사용 가능문자열 형태(str)로 입력해도 되고, 숫자 형태(int)로 입력해도 된다(단, 0으로 시작하는 우편번호는 숫자 형식으로 입력할 수 없다).구 우편번호의 경우, "123-456", "123456" 형태로 모두 사용 가능depth: [Optional(default:2)] 출력될 주소의 깊이depth사용 가능한 값설명11,"1","시도"시도 단위까지 출력22,"2","시군구"시군구 단위까지 출력. 기본값33,"3","도로명"도로명 단위까지 출력44,"4","full"도로명 단위에 추가 정보(읍면동, 리 정보)까지 출력format: [Optional(default:"string")] 출력 형식format사용 가능한 값설명문자열"string"문자열 형태로 출력. 기본값리스트"list"(depth값과 같은 길이의) 리스트 형태로 출력format문자열리스트depth1['경기도'][['경기도']]2['경기도 수원시 장안구'][['경기도', '수원시 장안구']]3['경기도 수원시 장안구 서부로 2066', 
 '경기도 수원시 장안구 일월로90번길 19', 
 '경기도 수원시 장안구 일월로90번길 7'][['경기도', '수원시 장안구', '서부로 2066'],
 ['경기도', '수원시 장안구', '일월로90번길 19'],
 ['경기도', '수원시 장안구', '일월로90번길 7']]4['경기도 수원시 장안구 서부로 2066 (천천동)',
 '경기도 수원시 장안구 일월로90번길 19 (천천동)',
 '경기도 수원시 장안구 일월로90번길 7 (천천동)'][['경기도', '수원시 장안구', '서부로 2066 (천천동)'],
 ['경기도', '수원시 장안구', '일월로90번길 19 (천천동)'],
 ['경기도', '수원시 장안구', '일월로90번길 7 (천천동)']]KoZIP.maskedZIPtoAddr(masked_zipcode, masked_letter, depth, format)마스킹 처리된 우편번호를 입력받아 주소로 변환하는 메소드masked_zipcode: 마스킹 처리된 우편번호현 우편번호(5자리)만 사용 가능길이 5인 문자열 형태(str)로만 입력해야 함오직 한 종류의 마스킹 문자(masked_letter)로만 마스킹 되어있어야 함masking_letter: [Optional(default:*)] 마스킹 문자길이 1인 문자열 형태로 입력해야 함depth: [Optional(default:1)] 출력될 주소의 깊이depth사용 가능한 값설명11,"1","시도"시도 단위까지 출력22,"2","시군구"시군구 단위까지 출력. 기본값33,"3","도로명"도로명 단위까지 출력44,"4","full"도로명 단위에 추가 정보(읍면동, 리 정보)까지 출력format: [Optional(default:"string")] 출력 형식format사용 가능한 값설명문자열"string"문자열 형태로 출력. 기본값리스트"list"(depth값과 같은 길이의) 리스트 형태로 출력fromkozipimportKoZIPkozip=KoZIP()kozip.maskedZIPtoAddr("08***")# 출력 :# ['서울특별시']kozip.maskedZIPtoAddr("164??",masking_letter="?",depth=2,format="list")# 출력 :# [ ['경기도', '수원시 권선구'],#   ['경기도', '수원시 팔달구'],#   ['경기도', '수원시 영통구'],#   ['경기도', '수원시 장안구'] ]kozip.maskedZIPtoAddr("x0x01",masking_letter="x")# 출력 :# ['경기도', '경상남도', '세종특별자치시', '경상북도']Changelogv1.0최초 버전KoZIP.ZIPtoAddr(zipcode, depth, format)메서드 추가v1.1KoZIP.maskedZIPtoAddr(masked_zipcode, masked_letter, depth, format)메서드 추가Lazy Loading 구현이제 실제 데이터를 사용할 때 데이터를 로드함사용하지 않는 데이터까지 모두 로드하지 않아, 객체 생성 속도가 빨라짐배포 자동화 스크립트commit생성
Package: kozumikku.py
kozumikku.pyAn asynchronous library for interacting with the Kozumikku API.Read the docs.Key FeaturesModern Pythonic API usingasyncandawaitSane Error handlingCorrect authenticationInstallingPython 3.8 or higher is requiredInstalling the library without HTTP speedups:# Linux/MacOSpython3-mpipinstall-Ukozumikku.py# Windowspy-3-mpipinstall-Ukozumikku.pyOtherwise, to get the HTTP speedups, run the following command:# Linux/MacOSpython3-mpipinstall-Ukozumikku.py[speedups]# Windowspy-3-mpipinstall-Ukozumikku.py[speedups]ExamplesfromkozumikkuimportKozumikkuClientclient=KozumikkuClient("API-TOKEN-HERE")# get an api token here: https://www.kozumikku.tech/api/# Requesting endpoints## Say we have an endpoint in the /image/ category, and we need to## request the /flip/ endpoint for it. We can simply run this:image:bytes=awaitclient.image("flip",url="image-url")# Read the docs for more information
Package: kPAL
kPAL is an analysis toolkit and Python programming library fork-mer
profiles.Easy installationTo install the latest release via PyPI using pip:pip install kPALSee the documentation for more detailedinstallation instructions.DocumentationThekPAL documentationwith user guide and
API reference is hosted at Read The Docs.CopyrightkPAL is licensed under the MIT License, see the LICENSE.rst file for
details. See the AUTHORS.rst file for a list of authors.
Package: k-pass
k_passPython package to generate random strong password and OTP.DescriptionInstallationExamplesAuthorLicenseDescriptionThe package has a function namedGenPass()which can generate random passwords and OTP which contains random UpperCase letters, LowerCase letters, Special and Numeric Characters.By default the generated password will be a mixture of random UpperCase letters, LowerCase letters, Special and Numeric Characters, and the length will be also a random number between 16-32.User can customize the password generation by passing some arguments to the generation function.User can customize the password length by passing a numeric value to thelengthparameter.There are other 4 boolean parameters to control the generated password's characters.booleanupperparameter for UpperCase Letters.booleanlowerparameter for LowerCase Letters.booleanspecialparameter for Special Characters.booleannumberparameter for Numbers.By default, all the boolean parameters will be false. This will generate a random password consist of mixed characters.To enforce custom charset, one should pass True value to the parameters regarding those charsets.InstallationTo install, write the following command in your terminal.pipinstallk_passExamplesImport the function to your code.fromk_passimportGenPassGenerate a random password using default parameters.password=GenPass()Generate a random password of a fixed length(mixed characters).password=GenPass(8)Generate a random password of a fixed length and consist of only UpperCase letters.password=GenPass(8,upper=True)Generate a random password of a random length and consist of only LowerCase letters.password=GenPass(lower=True)Generate a random password of a fixed length and consist of only Numbers(i.e OTP).password=GenPass(6,number=True)Generate a random password of a random length and consist of only Special Characters.password=GenPass(special=True)Generate a random password of a fixed length and consist of only Special Characters and UpperCase letters.password=GenPass(8,upper=True,special=True)AuthorWahid Sadique KolyGithubPortfolioLicenseThis project is licensed under the MIT License - see theLICENSEfile for details
Package: kpcat
kpcatcat a keepass fileThe goal of this project is to read a keepass file on the command line, enabling usge with other unix tools.Basic usage$ python setup.py develop
$ ↪ kpcat --help
Usage: kpcat [OPTIONS] KEEPASS_FILE

  cat a keepass file

Options:
  --password TEXT              Password for keepass file. Will try to load
                               $KPCAT_PASSWORD from the environment first,
                               which can be overriden by this option. If
                               neither are supplied a prompt will ask for your
                               password. NOTE: using a prompt will not work if
                               piping the output to another command.
  --keyfile FILE               Key file for keepass file.
  --show-passwords             Option to show passwords in output; passwords
                               are redacted by default.
  --output-format [json|text]  Format type for output. Default: text
  --help                       Show this message and exit.
Package: kpclibpy
KPCLibPyis a KeePass command
application written in Python.The originalKeePassby Dominik Reichl is a
.NET application written in C#.KeePassLibis part of KeePass which
can be built as a library to support the major functions of KeePass.
However, at the moment,KeePassLibis still built for .NET framework
which can run on Windows only. I modifiedKeePassLiband extended it
as a .NET Standard library -KPCLib.KPCLibstands for KeePass
Portable Class Library at the time when I started the work. Portable
Class Library (PCL) is replaced by .NET Standard Library nowadays.KPCLibPyis just a Python
wrapper ofKPCLibusingPython.NET. In this perspective,KPCLibPyis fully compatible to the original KeePass, since the
majority of code is the same as KeePass.In order to save the development effort and have a nice user interface,
the Python librarypython-nubiafrom Facebook is used as the framework to support command line
interface.Key FeaturesFull compatible with the original KeePass.NET Standard 2.0 support withKPCLibCross platform support with .NET Standard and .NET coreNice user interface withpython-nubiaInteractive mode that offers fish-style auto-completionInstallationAs a developer, you can useKPCLibPyfrom GitHub directly.gitclonehttps://github.com/shugaoye/KPCLibPy.gitcdKPCLibPypipinstall-rrequirements.txtcdsrcpython3./nubia_main.pyFor normal user,KPCLibPycan
be installed using pip.$ pip install kpclibpy
$ keepassDocker imageA Dockr image -docker-monocan be used on
Linux or Windows 10 (WSL).ConfigurationThe default location for database files is at $HOME/.kpclibdb (or %USERPROFILE%.kpclibdb on Windows). To change the default location, a configuration file kpclibpy.ini can be created in the folder $HOME/.kpclibdb.
.. code:[DEFAULT]
homepath = {your data path}IssuesOn Windows platform, you may get the below error message:Unhandled exception in event loop:
File "c:\users\kpclibpy\appdata\local\programs\python\python38-32\lib\asyncio\proactor_events.py", line 768, in _loop_self_reading
    f.result()  # may raise
File "c:\users\kpclibpy\appdata\local\programs\python\python38-32\lib\asyncio\windows_events.py", line 808, in _poll
    value = callback(transferred, key, ov)
File "c:\users\kpclibpy\appdata\local\programs\python\python38-32\lib\asyncio\windows_events.py", line 457, in finish_recv
    raise ConnectionResetError(*exc.args)

Exception [WinError 995] The I/O operation has been aborted because of either a thread exit or an application request
Press ENTER to continue...This is an issue of prompt-toolkit. You can change prompt-toolkit to version 2.x.pipinstall-Uprompt-toolkit~=2.0
Package: kpconsole
Smart-M3 Python knowledge processor library console utilityUsage:- See the Smart-M3 documentation about how to set up and run a Smart-M3 SIB.- import kpconsole; kpconsole.main()Links:- http://smart-m3.sourceforge.net- http://public.futurice.com/~ekan/thesis.pdfChangelog=========1.0.2 - Released 2009-12-23----------------* Packaging improvements for releasing in PyPi1.0.1 - Released 2009-12-17----------------* Moved code to SourceForge1.0.0 - Released 2009-12-10----------------* Initial stable release.
Package: kpdvdb
This Python module provides functions to interact with KayPENTAX Disordered Voice DatabaseThis module DOES NOT provide the database itself. KayPENTAX Disordered Voice Database is
a (discontinued) commercial product, an addon option to KayPENTAX’s Computerized Speech Lab (CSL).For faster access to the data, copying the database files from the CD-ROM to a local hard drive is
highly recommended.InstallpipinstallkpdvdbUsefromkpdvdbimportKPDVDB# to initialize (must call this once in every Python session)kpdvdb=KPDVDB('<path to CDROM drive or root directory of the database>')# to list all the data fieldsprint(kpdvdb.get_fields())# to list categorical fields' unique valuesprint(kpdvdb.get_sexes())# gendersprint(kpdvdb.get_locations())# pathology sitesprint(kpdvdb.get_natlangs())# native languagesprint(kpdvdb.get_origins())# racesprint(kpdvdb.get_diagnoses())# diagnoses# to get a copy of the full databasedf=kpdvdb.query(include_diagnoses=True)# to get age, gender, diagnoses, and MDVP measures of non-smoking# subjects with polyp or paralysis, F0 between 100 and 300 Hzdf=kpdvdb.query(["AGE","SEX","DIAGNOSES","MDVP"],DIAGNOSES=["vocal fold polyp","paralysis"],Fo=[100,300],SMOKE=False)# to get the list of AH NSP files of normal subjectsnspfiles=kpdvdb.get_files('ah',NORM=True)# to iterate over 'rainbow passage' acoustic data of female pathological subjectsforfs,x,infoinkpdvdb.iter_data('rainbow',auxdata_fields=["AGE","SEX"],NORM=False,SEX="F"):# run the acoustic data through your analysis function, get measurementsparams=my_analysis_function(fs,x)# log the measurements along with the age and gender infomy_logger.log_outcome(*info,*params)NOTEBecause the database is not public, this module cannot be tested for various platforms
via GitHub Action. If you encounter any issues, please post it on GitHub.
Package: k-peg-hanoi
Tower of Hanoi (using k peg)Usage (hanoi {disk#} {rod#})Seehanoi --help$ hanoi 3 3
  =               
 ===              
=====             
0----------------

 ===              
=====         =   
1----------------

=====  ===    =   
2----------------

        =         
=====  ===        
3----------------

        =         
       ===  ===== 
4----------------

  =    ===  ===== 
5----------------

             ===  
  =         ===== 
6----------------

              =   
             ===  
            ===== 
7----------------$ hanoi 3 4
  =                     
 ===                    
=====                   
0----------------------

 ===                    
=====   =               
1----------------------

=====   =    ===        
2----------------------

        =    ===  ===== 
3----------------------

                   ===  
        =         ===== 
4----------------------

                    =   
                   ===  
                  ===== 
5----------------------$ hanoi 4 4 --text
#1 disk 1 from 0 to 1
#2 disk 2 from 0 to 3
#3 disk 3 from 0 to 2
#4 disk 2 from 3 to 2
#5 disk 4 from 0 to 3
#6 disk 2 from 2 to 0
#7 disk 3 from 2 to 3
#8 disk 2 from 0 to 3
#9 disk 1 from 1 to 3