Skip to main content

simple python module for KoiLang parsing

Project description

Kola

Simple python module for KoiLang parsing.

License PyPI Python Version

Installation

From pip:

pip install KoiLang

From source code:

python setup.py build_ext --inplace
python setup.py install

What is KoiLang

KoiLang is a markup language while is easy to read for people. There is an simple example.

#background Street
    #camera on(Orga)
    #character Orga
        Huh... I'm a pretty good shot, huh?
    #camera on(Ride, Ched)
    #character Ride
        B- boss...
    #character Orga
        #action bleed
    #camera on(object: blood, source: Orga)

    #camera on(Ched, Orga, Ride)
    #character Orga
        How come you're stammering like that... Ride!

    #playsound freesia

    #character Orga
        #action stand_up speed(slowly)

    #character Ride
        But... but!
    #character Orga
        I'm the Boss of Tekkadan, Orga Itsuka, this is nothing to me.
    #character Ride
        #action shed_tear
        No... not for me...

    #camera on(Orga)
    #character Orga
        Protecting my members is my job!
    #character Ched
        #action shed_tear

    #character Ride
        But...!
    #character Orga
        Shut up and let's go!

        #camera on(Orga)
        #action walk direction(front) speed(slowly)
        Everyone's waiting, besides...

        I finally understand now, Mika, we don't need any destinations, we just need to keep moving forward.
        As long as we don't stop, the road will continue!

Grammar

In KoiLang, the code contains 'command' section and 'text' section. The format of the command section is similar to a C prepared statement, using '#' as the prefix. And other lines that do not start with '#' are the text section.

#command "This is a command"
This is the text.

The format of a single command like:

#command_name [param 1] [param 2] ...

There are several parameters behind the command whose name should be a valid variable name.

An unsigned decimal integer like is also a legal command name, like #114.

Each command can have several parameters behind the command name. Valid argument type include integer, float, literal and string.

#arg_int    1 0b101 0x6CF
#arg_float  1. 2e-2 .114514
#arg_literal string __name__
#arg_string "A string"

Here literal argument is a valid python variety name containing letter, digit, underline and not starting with digit. Usually it is the same as a string.

The above parameter types are often referred to base parameters. Combination parameter which is composed of multiple basic parameters is another argument type. It is a key-to-value mode which is starting with a literal as key and followed by several basic parameters. The format is as follows:

#kwargs key(value)

And another format:
#keyargs_list key(item0, item1)

And the third:
#kwargs_dict key(x: 11, y: 45, z: 14)

All the parameters above can be put together:

#draw Line 2 pos0(x: 0, y: 0) pos1(x: 16, y: 16) \
    thickness(2) color(255, 255, 255)

What can Kola module do

Kola module provides a fast way to translate KoiLang command into a python function call.

Above command #draw will convert to function call below:

draw(
    "Line", 2,
    pos0={"x": 0, "y": 0},
    pos1={"x": 16, "y": 16},
    thickness=2,
    color=[255, 255, 255]
)

Kola mudule just create a bridge from kola file to Python script. The bridge, the main class of Kola module, is KoiLang class. There is a simple example.

Example

Let's image a simple situation, where you want to create some small files. Manual creating is complex and time-consuming. Here is a way to solve that. We can use a single kola file to write all my text. Then use commands to devide these text in to different files.

Let us start with a kola file:

## This is the file `makefiles.kola`

#file "hello.txt" encoding("utf-8")
Hello world!
And there are all my friends.

#space hello

    #file "Bob.txt"
    Hello Bob.

    #file "Alice.txt"
    Hello Alice.

#endspace

Just name it as makefiles.kola. Then, we make a script to explain how to do with these commands:

import os
from kola import KoiLang, kola_command, kola_text


class FastFile(KoiLang):
    @kola_command
    def file(self, path: str, encoding: str = "utf-8") -> None:
        if self._file:
            self._file.close()
        path_dir = os.path.dirname(path)
        if path_dir:
            os.makedirs(path_dir, exist_ok=True)
        self._file = open(path, "w", encoding=encoding)
    
    @kola_command
    def space(self, name: str) -> None:
        path = name.replace('.', '/')
        if not os.path.isdir(path):
            os.makedirs(path)
        os.chdir(path)
    
    @kola_command
    def endspace(self) -> None:
        os.chdir("..")
        self.end()

    @kola_command
    def end(self) -> None:
        if self._file:
            self._file.close()
            self._file = None
    
    @kola_text
    def text(self, text: str) -> None:
        if not self._file:
            raise OSError("write texts before the file open")
        self._file.write(text)
    
    def at_start(self) -> None:
        self._file = None
    
    def at_end(self) -> None:
        self.end()

You can save the script in file script.py. After that, let us try to mix them together by entering the following in terminal:

python -m kola makefiles.kola -s script.py

Or add these directly at the end of the script:

if __name__ = "__main__":
    FastFile().parse_file("makefiles.kola")

You will see new files in your work dir.

<workdir>
│      
│  hello.txt
│      
└─hello
    Alice.txt
    Bob.txt

What happened

It seems amusing? Well, if you make a python script as this:

vmobj = FastFile()

with vmobj.exec_block():
    vmobj.file("hello.txt", encoding="utf-8")
    vmobj.text("Hello world!")
    vmobj.text("And there are all my friends.")

    vmobj.space("hello")

    vmobj.file("Bob.txt")
    vmobj.text("Hello Bob.")

    vmobj.file("Alice.txt")
    vmobj.text("Hello Alice.")

    vmobj.endspace()

the same result will be get. This is the python script corresponding to the previous kola file. What we have done is to make KoiLang interpreter know the correspondence between kola commands and python functions.

So let's go back to the script. Here the first we need is a kola command set that is the top interface for parsing. All commands we want to use will be included in the set. The best way is create a subclass of KoiLang with all commands as methods. That is:

class FastFile(KoiLang):
    ...

The next step is making the kola command we need. So a function is defined here:

def file(self, path: str, encoding: str = "utf-8") -> None:
    if self._file:
        self._file.close()
    path_dir = os.path.dirname(path)
    if path_dir:
        os.makedirs(path_dir, exist_ok=True)
    self._file = open(path, "w", encoding=encoding)

But it is not enough. Use the decorator @kola_command to annotate the function can be used in the kola text. In default case, the name of kola command will be the same to that of the function's. If another name is expected to use in kola files instead of the raw function name, you can use @kola_command("new_name") as the decorator. It wiil look like:

@kola_command("open")
def file(self, path: str, encoding: str = "utf-8") -> None:
    if self._file:
        self._file.close()
    path_dir = os.path.dirname(path)
    if path_dir:
        os.makedirs(path_dir, exist_ok=True)
    self._file = open(path, "w", encoding=encoding)

Than #open "hello.txt" will be a valid command, while using #space hello would get a KoiLangCommandError.

You may have notice that there is a special decorator @kola_text. As we know, the text section in kola files is a command, too. This decorator is to annotate the function to use to handle texts. Using @kola_command("@text") has the same effect. And another special decorator which is not shown here is @kola_number. It can handle commands like #114 or #1919. The first argument wiil be the number in the command.

File parse

KoiLang class provides several method. Use parse method to parse a string and parse_file to parse a file. It is suggested to use the second way so that KoiLang interpreter can give a traceback to the file when an error occure.

Advanced techniques

In above example, we define two commands to create and leave the space. While, if users use #endspace before creating space, this can cause some problems. To correct user behavior, we can use the environment to restrict the use of some commands. Environment class should be used here to define a sub class that is the new environment:

class FastFile(KoiLang):
    ...

    class space(Environment):
        @kola_env_enter("space")
        def enter(self, name: str) -> None:
            self.pwd = os.getcwd()
            path = name.replace('.', '/')
            if not os.path.isdir(path):
                os.makedirs(path)
            os.chdir(path)
        
        @kola_env_exit("endspace")
        def exit(self) -> None:
            os.chdir(self.pwd)

There is a parameter named envs in @kola_command, which is also used to limit the environment where commands use. It means the top stack of environment must have the same name, while commands defined in the environment class mean the they can be used until the environment is pop from the environment stack, even though the stack top is other environment.

What is more

The most difference between KoiLang and other markup language like YAML which is data-centric is that KoiLang more pay attention to the command. Yeah, text in Kola file is a special command named @text too. In fact, the core idea of Kola is to separate data and instructions. The kola file is the data to execute commands, and the python script is the instructions. Then Kola module just mix they together. It can be considered as a simple virtual machine engine. if you want, you can even build a Python virtual machine (of course, I guess no one like to do that).

On the other hand, text is also an important feature of Kola, which is a separate part, independent of context during parsing. The text is the soul of a Kola file. Any commands just are used to tell the computer what to do with the text. Though you can make a Kola file with only commands, it is not recommended. Instead, you ought to consider switching to another language.

Bugs/Requests

Please send bug reports and feature requests through github issue tracker. Kola is open to any constructive suggestions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

KoiLang-1.1.0.tar.gz (324.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

KoiLang-1.1.0-cp310-cp310-win_amd64.whl (182.5 kB view details)

Uploaded CPython 3.10Windows x86-64

KoiLang-1.1.0-cp310-cp310-win32.whl (165.6 kB view details)

Uploaded CPython 3.10Windows x86

KoiLang-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (976.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

KoiLang-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (972.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

KoiLang-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (919.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

KoiLang-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl (216.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

KoiLang-1.1.0-cp39-cp39-win_amd64.whl (184.1 kB view details)

Uploaded CPython 3.9Windows x86-64

KoiLang-1.1.0-cp39-cp39-win32.whl (167.2 kB view details)

Uploaded CPython 3.9Windows x86

KoiLang-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (983.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

KoiLang-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (979.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

KoiLang-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (876.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

KoiLang-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl (218.0 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

KoiLang-1.1.0-cp38-cp38-win_amd64.whl (185.1 kB view details)

Uploaded CPython 3.8Windows x86-64

KoiLang-1.1.0-cp38-cp38-win32.whl (167.3 kB view details)

Uploaded CPython 3.8Windows x86

KoiLang-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (988.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

KoiLang-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (983.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

KoiLang-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl (745.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ i686manylinux: glibc 2.5+ i686

KoiLang-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl (219.0 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

KoiLang-1.1.0-cp37-cp37m-win_amd64.whl (184.4 kB view details)

Uploaded CPython 3.7mWindows x86-64

KoiLang-1.1.0-cp37-cp37m-win32.whl (166.4 kB view details)

Uploaded CPython 3.7mWindows x86

KoiLang-1.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (912.3 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

KoiLang-1.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (903.7 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

KoiLang-1.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl (675.2 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.24+ i686manylinux: glibc 2.5+ i686

KoiLang-1.1.0-cp37-cp37m-macosx_10_9_x86_64.whl (215.8 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

KoiLang-1.1.0-cp36-cp36m-win_amd64.whl (204.3 kB view details)

Uploaded CPython 3.6mWindows x86-64

KoiLang-1.1.0-cp36-cp36m-win32.whl (178.4 kB view details)

Uploaded CPython 3.6mWindows x86

KoiLang-1.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (873.1 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

KoiLang-1.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (867.7 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ ARM64

KoiLang-1.1.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (770.2 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

KoiLang-1.1.0-cp36-cp36m-macosx_10_9_x86_64.whl (211.7 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file KoiLang-1.1.0.tar.gz.

File metadata

  • Download URL: KoiLang-1.1.0.tar.gz
  • Upload date:
  • Size: 324.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for KoiLang-1.1.0.tar.gz
Algorithm Hash digest
SHA256 a1281e80132f622ea287087e42fdb7a60f7c669e54660d1ea1e76604c52b1deb
MD5 b417511fefde5dc33a114963d2e28fd8
BLAKE2b-256 f6d4a388f74269f85ededd3878679e14e6de96004884bdc861c3a5db1b50ee97

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: KoiLang-1.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 182.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for KoiLang-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6bbfe912cd5062253f85f902dc94a5659739ce79e6e3d769ecf43f141f3b6d74
MD5 beec3db127f1b2958b8978e9016d4997
BLAKE2b-256 24d4f48b8493f9fcdf8f32773dad16c386112ae6065d368ca36e3d1ea4e81e2e

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: KoiLang-1.1.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 165.6 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for KoiLang-1.1.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 c14ca3fd40f42b0d5e1465b7efabfa601d3987fc0f9011ca6f83f1941f54cd83
MD5 c2007d03b88c9e2f28a7f68cbecb0c26
BLAKE2b-256 508c76feb1537b9968fa6ae0d98eb97d2eea4616582c83a6d4bb7057600ca721

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae43440e172813496348c9437484af63f587318e5f280a94cbe8540870bf718d
MD5 68acbb51e251fe00aca74ec91dc2a4ee
BLAKE2b-256 5d77fd4f0c5b1b889c1c5a21cf4b1f2a82c011ace4bdbfa3fdf0eac4298857e9

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b4e72fb6ec674b4273dfc3b9844abfc4f51fcecbf93785ad370e412a3be21271
MD5 ad8c3a8d538e1e18efe85de24e3a0c13
BLAKE2b-256 935f4b8bfb28ec707d2f286754c1aaec3ffec456deeb6718bfaf1bc75c00afb4

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ece15383ae97f6c10e53fcfeb8c0b35a23ab8364d2c0dfa79d7067cdf4366d56
MD5 fdb4c503008db0fcee07f70fb5419b9e
BLAKE2b-256 8ea7d338420df194b4dd79219942529e39f49a51fd51b0f68ee70d5bda818566

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fe7cb7793959e957f9d5ef0781fd36593f01e17f7502e379860dfe205112c1dc
MD5 2f39417384d4caa08d3c756d0c5742d0
BLAKE2b-256 000abaea5b6b61520e4d450a3ec7419128e0032e813fcc96261994c7eb054231

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: KoiLang-1.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 184.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for KoiLang-1.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 69915844f21751664febeaab219f3c2241caebc0bdd3b73b245119ae9b18e5b6
MD5 d81e9805d9949895b594dad5d8eb3b69
BLAKE2b-256 9f6f0d1d80e198e170a779d53dab6cb182e9233beabfdacc843edb344633f386

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: KoiLang-1.1.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 167.2 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for KoiLang-1.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 815f66a0ef4e858eedd4f8670e87872d8bdd93d5e503e2199f70d16257e2a851
MD5 b1d65110981ba7b91506f99a6b1a5642
BLAKE2b-256 a09a22fdae372a4855ca93761408e16f33afdf7adc0f349027c2b62013096f48

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 37f6bba5cfd3855a17520796b9e318f7dcc80c5607159df1a095d6bb75888b80
MD5 d2793484c9cbdf7555a6ed5b0231ee86
BLAKE2b-256 17c502dc2ae3fad0889822f096f77ae6f77190ede94448cdc670e133004285ed

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e1985e4fe7f5de2f96400f8646ed8f33e5509b9a5f45193bac13529eb6e9f2e0
MD5 42761579f9184713caa94848bb0b7161
BLAKE2b-256 31284f268a19d8a6e02c77c56c8ea131953dfea3591a301f2fb27afbd3b8ac65

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 d1b501217a88c061c9e0278834d062e20cadb49286360941870b7649487961cb
MD5 87e0356cd29526cacaf0c2ef329c7b4c
BLAKE2b-256 c171ac4c2653b1a2ab00e2dd8253d6177ed0a0f6384c57835ea69bc9734a637f

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 389d49d3be4afa0e34af918b0f7d482bcd7757bcfd51163157a61c557735e020
MD5 d9fa5f623d3d418ca802c3a6f519c027
BLAKE2b-256 a1c06db6fada7a9580fa4797e1b1744cb12c9037a0a08aaf8c29ae6cf74561b7

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: KoiLang-1.1.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 185.1 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for KoiLang-1.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b10980cc3b2f645f0d1b123cdfbb00ba69068e8e5f67ef5c55856cda7287ac1a
MD5 0c1fec12b0d5d76bfcf1e8ba81a40fe5
BLAKE2b-256 c65bdadbcf505fb92ec451062e0f68238d991c1ffd1137db9ad80513c04ca844

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: KoiLang-1.1.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 167.3 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for KoiLang-1.1.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 bf92c92970b279f9494c1b7426756aa3b8543702af7d54e15d3682c0187f619a
MD5 7ebad69749dec4dcc4f63918a198cf4e
BLAKE2b-256 c1232e2e62c0ecdc601673ff53ef3f3c0b7f59540ea4405ed26ef6324557308a

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b62a7c3b0077e45924e7fe0634e8ffa289e577ff48bad96d30470f540db7946c
MD5 4b41179eb9bc8a6dfb39a2be234bfb78
BLAKE2b-256 64f7349949a121f04fb2558b98e623d14daf226fda73271669323d68a865127d

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3906d40dc1c23d29f456bcdf7bbd09e72b3d36ddff2ac4e1e9d88e20d9f04b4b
MD5 665c0b344d6ad87aab686a76de5b4a80
BLAKE2b-256 f275a7b2460b4618772bb466330eb2a028b6298784364dfe6f53dbf9a2a2019c

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl
Algorithm Hash digest
SHA256 51663a6c2a42ddbd4d18bc05e1107dd690436a0a836bf7304a52bc21e421accd
MD5 e5de6b8d42cbba8cb5ca63d47b4ccda3
BLAKE2b-256 ae1ae3ac32c0ca5a65fadecb812d9a19ac95604b2dc68cb6c17499a9a99c0d2b

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b84320439e439a2fb53dbed3b1641b313721bbbe8fce8fe113093a82d07bb4fa
MD5 40cbfa63a0a76dafc5efe3f218aeadc9
BLAKE2b-256 2dd800d6f2f0f741a20e500d849aea56fe6bde2c915f59e162ca21d54c5d5c5f

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: KoiLang-1.1.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 184.4 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for KoiLang-1.1.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 a44690cc08f05a7b901db1be2126225a80c7e52f44203831663c11fd1a567561
MD5 65501342097f29d4c2c0e39766e7bcc7
BLAKE2b-256 4e1f89545d401ba26f29d32791f47bab0cdd77b2440bc4deaf46863ae90f7ef8

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: KoiLang-1.1.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 166.4 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for KoiLang-1.1.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 ea4d8630fe498580fa087370afefe9487d850e386f445d07e19a0f0c406cab02
MD5 e078e64d6cdd8975595fe175b5572d7f
BLAKE2b-256 23841645b5630ed318c27d254d57c6c96d6f51dbcb92c1640c65a9b5e80bf479

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4bcc3e37d5b15a19627a6d350db49b3cf971f37322a2a91bd90e54e7f75eb7b4
MD5 b6a8a1bfbe62cb69c6ed83fa89e8ecc5
BLAKE2b-256 d79d28758118528c1495a00598d918deaca821ae3409ceb3e83fe2d34990f939

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ae5d55c39824310f442c4d2158a5e719221b18fa9a6c73aefe18dad8e6f363b8
MD5 709201c772d00143a14a455e02817a6d
BLAKE2b-256 a193edd29ff6e3da0feebdff32d116a1aa573e4b07d315330f472fd2a895ad50

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl
Algorithm Hash digest
SHA256 9b12859e5c2726a30f31ecfec83bf302c05f802a5f857edc9cff68d1eadf2542
MD5 c722da5a2f17c4c380d286c8877a4482
BLAKE2b-256 f9a6dfbca263ec20387592c2e9f355306ab40dea364dbf64779f45260c6ca27a

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 10ecceee4c69e2134fced8b8f33baca1bc00da6f186d3ccf11f6b19a10d3b3d7
MD5 d9d7510d40202fa5d6ec615eae3684ca
BLAKE2b-256 a8833a4a3352afb96db5e7d449e529272bd53f85ba492d015c7d095df38d67df

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: KoiLang-1.1.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 204.3 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for KoiLang-1.1.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 474ff85d47a24e5837bcf21a883251e5999bd8659f9dd8a263f853ad708aeb9b
MD5 8d53bc90443a3d84df3b5f6a035ada37
BLAKE2b-256 0ae6c2db1d08e4af7265a5c55af885cf4d4da28a623576b5f6a9b1d48b2dcc7e

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: KoiLang-1.1.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 178.4 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for KoiLang-1.1.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 56bb65a5ad6f3b9c64fadb4c4ccac5ba8be1fda2a96b9ab1754b124350c9eff9
MD5 ba1f75ace334ce0a37a73dc1c0e58955
BLAKE2b-256 3286f048992022c9319c27fdc8743588dc69e55ae915bcb8e0351b4e6d1e7664

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5dc3e7abe31d91ec2dfef7182c84575859c6190d72826422a1dedf032def7cac
MD5 26f9cff64e3720172b6adb55b8bfef94
BLAKE2b-256 f8eaf10e23bc769d306cfc8975e564796f92ec2f79ee5d4b7a87d932e5d7ce6e

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 49bfca85ca0705ce9b356b21bcb21b500597390effd740b90ffef8a6cfe6df02
MD5 b515a8d83d9ca5c5f8a0e81829896de9
BLAKE2b-256 383df78a34ac35ea8a5d4e7d44703aec9974a536c30b1f2c9615774b1874e8c8

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 78181cbf2a5b335f5ef8223aa0702584e3f9c10981cfb2f77e3dd99d3af17e57
MD5 ac557fce6893ca208836841f34464797
BLAKE2b-256 81496be9117d6fe3ef12665d108651a29ec09804b01a12b33fa417c569acef0f

See more details on using hashes here.

File details

Details for the file KoiLang-1.1.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.1.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7203630d2c7c39ce0ce3a8566f5d018fcab1f57c390e88edb70a3cea520baeba
MD5 bd01830b25be46e841388be5eb900002
BLAKE2b-256 7e60e807fa7580b4d9067f038239c0097cfe1802ab288a9ec62043b942b82ede

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page