Skip to main content

simple python module for KoiLang parsing

Project description

Kola

Simple python module for KoiLang parsing.

License PyPI PyPI - Downloads 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.2.0a0.tar.gz (327.4 kB view details)

Uploaded Source

Built Distributions

KoiLang-1.2.0a0-cp310-cp310-win_amd64.whl (187.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

KoiLang-1.2.0a0-cp310-cp310-win32.whl (170.1 kB view details)

Uploaded CPython 3.10 Windows x86

KoiLang-1.2.0a0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (981.1 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

KoiLang-1.2.0a0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (976.8 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

KoiLang-1.2.0a0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl (704.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.24+ i686 manylinux: glibc 2.5+ i686

KoiLang-1.2.0a0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (924.1 kB view details)

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

KoiLang-1.2.0a0-cp310-cp310-macosx_10_9_x86_64.whl (220.5 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

KoiLang-1.2.0a0-cp39-cp39-win_amd64.whl (188.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

KoiLang-1.2.0a0-cp39-cp39-win32.whl (171.8 kB view details)

Uploaded CPython 3.9 Windows x86

KoiLang-1.2.0a0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (988.4 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

KoiLang-1.2.0a0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (984.0 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

KoiLang-1.2.0a0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl (711.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.24+ i686 manylinux: glibc 2.5+ i686

KoiLang-1.2.0a0-cp39-cp39-macosx_10_9_x86_64.whl (222.5 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

KoiLang-1.2.0a0-cp38-cp38-win_amd64.whl (189.6 kB view details)

Uploaded CPython 3.8 Windows x86-64

KoiLang-1.2.0a0-cp38-cp38-win32.whl (171.9 kB view details)

Uploaded CPython 3.8 Windows x86

KoiLang-1.2.0a0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (992.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

KoiLang-1.2.0a0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (987.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

KoiLang-1.2.0a0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl (750.0 kB view details)

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

KoiLang-1.2.0a0-cp38-cp38-macosx_10_9_x86_64.whl (223.5 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

KoiLang-1.2.0a0-cp37-cp37m-win_amd64.whl (188.9 kB view details)

Uploaded CPython 3.7m Windows x86-64

KoiLang-1.2.0a0-cp37-cp37m-win32.whl (170.9 kB view details)

Uploaded CPython 3.7m Windows x86

KoiLang-1.2.0a0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (916.8 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

KoiLang-1.2.0a0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (908.2 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

KoiLang-1.2.0a0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (800.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

KoiLang-1.2.0a0-cp37-cp37m-macosx_10_9_x86_64.whl (220.3 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

KoiLang-1.2.0a0-cp36-cp36m-win_amd64.whl (208.9 kB view details)

Uploaded CPython 3.6m Windows x86-64

KoiLang-1.2.0a0-cp36-cp36m-win32.whl (183.0 kB view details)

Uploaded CPython 3.6m Windows x86

KoiLang-1.2.0a0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (877.5 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

KoiLang-1.2.0a0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (872.2 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

KoiLang-1.2.0a0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (774.7 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686 manylinux: glibc 2.5+ i686

KoiLang-1.2.0a0-cp36-cp36m-macosx_10_9_x86_64.whl (216.2 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file KoiLang-1.2.0a0.tar.gz.

File metadata

  • Download URL: KoiLang-1.2.0a0.tar.gz
  • Upload date:
  • Size: 327.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.17

File hashes

Hashes for KoiLang-1.2.0a0.tar.gz
Algorithm Hash digest
SHA256 b489e5db0a468cf9cf1329b26b5e8cb2a2ecbeafc8901caf823c0f91b71f3ce7
MD5 429228d1ef5b4b82ae0aaa0a649d1ff7
BLAKE2b-256 4a7368da3f77a12dcd632548559a6a85809baacc7639cb2a82487be6b0854fb8

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 99520176854e9af17ee715c07b8365edc395276f50385d342dadbafeca5e5638
MD5 214d040ea907412af01e3fa426adfa1b
BLAKE2b-256 610c4a3202287780763a117a7f52ffb1b4a4420089cffbaa1df655a4db8f1076

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp310-cp310-win32.whl.

File metadata

  • Download URL: KoiLang-1.2.0a0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 170.1 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.2.0a0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 e68e17e81703203e5bb8c5a462e80c06eeffb8887a866225eaccc0530cfa9310
MD5 c051b36bb4614851696c88b882e0f032
BLAKE2b-256 fdbd026f9c4b519595dd17f6144bcd99f6024e703a8c5fc1944ebb04cd0dc1f3

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 58e8b0aef0ce262b01bb5c249647e84ef7e0776898fa0f73e74e04f21c84ff4d
MD5 9d23c93ab06f0c7734c404965cd77970
BLAKE2b-256 65c6d1bb4151eda2956d8ca2002e23f77264a121436a87e62b7e192e4901bfa3

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ea05c441ab3ad5494a312d285987928e213f71dd41694e498d36c5bdb6e1cb43
MD5 05cb66f91b7c22df308468a54bcc9ae6
BLAKE2b-256 a758396cc1f3c1db37e848ba9f1352a4c136034726c5fa9e2d58a111763ef876

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl
Algorithm Hash digest
SHA256 34e67e85c5be13893e2772842b9b4b22c2ce6bbd47b1baf01491430789d5251f
MD5 1d3c6426860e6ba03bdcb744bdf58a6d
BLAKE2b-256 23d171c7b096c5f25f5889fc5940d2de286e9659d65f44b6e1a9138ce6d32ea1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6f35acafa76f8536d88589b124c2fce15e6da5faa8bdf9f4903a402e1e3849a5
MD5 f00624cbd7ad17a15c711f5d33e5ba2e
BLAKE2b-256 381f71b57694a538727e3322cce2e79de7a78731161a682a906a45529b713d7c

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cbac79f7e374389b436da66da4a08dcc25d3f7f05e59dc3d27fd13250217cc28
MD5 3b1c0ef24b5c59c1014819e53b4820c1
BLAKE2b-256 35e45c26c541f48b18729385663a15d80d5e782c93516286b65db453e75c1ff8

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: KoiLang-1.2.0a0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 188.7 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.2.0a0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 241f93788ae7a162853e28b61112f8155f3405938edf45a274e0502e2082c358
MD5 e98176e047a897c3428bf45b6e780280
BLAKE2b-256 884e689a8250b64863a1f921e957428009f76efaadcf195780cd1afdc00166ae

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp39-cp39-win32.whl.

File metadata

  • Download URL: KoiLang-1.2.0a0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 171.8 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.2.0a0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 90608a18ea98b1c9cc52451a7e884ef7117183fa737173a287a2d2b08b87f2aa
MD5 4754f6cef29bddbab00f66f7ea25cedd
BLAKE2b-256 953187381d89d185bc825c60d1f8cde1e5dba626098a526acac68e45fa903314

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c107beb6af88aed86e4b34965f565ee847b469441ac137a06ef4532f156d6c70
MD5 7bd182fb566a6be3916da8214ca3103c
BLAKE2b-256 5a1151e6c33dc38439c47b9695c143c1f1c8f5e7bcf48cb3a394548a4ab8b562

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7216611f5d517c94af871fb824dc94e826c401ea143948b2d5b0b2c3f1a39ddc
MD5 cf79360ef18e29deaa97da685053b5af
BLAKE2b-256 b4fba5da7829637554acaa35133dc4b9dc4a4499493e68fc99a6a87b2391e250

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl
Algorithm Hash digest
SHA256 b4fa47f928b2a5cac244f4fca7a83951b20ad9a26fab02d68cc0f6fc1e4e87fa
MD5 b2b5711d8149dfe3f37b960298c51a71
BLAKE2b-256 057a1b64b274cae4b88bddfcc8f50ffdc5c550b4d7409ec66aa404d9ecbdafe6

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 74231d672b42a3699630f80fbe375b0edd808e8a6cec64715e76c55f93f08c8f
MD5 1a856223eaeb8817a3302a804b2f6ac9
BLAKE2b-256 34d39f6eee67e300f09756d48e8115c8d271d4292c88663fe913674f0b468b76

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: KoiLang-1.2.0a0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 189.6 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.2.0a0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 04a569c9eefe6e13469c37111b77e9ef238e6e2de21451c45250234c6acb25b1
MD5 809f960fc513402bfbc0f146471d87bc
BLAKE2b-256 937053b46edfedaa1640edb8151f02b791bd213455d3952a8260af0c1d9fa487

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp38-cp38-win32.whl.

File metadata

  • Download URL: KoiLang-1.2.0a0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 171.9 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.2.0a0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 af8a25fa4533a93b71ccfd2491d3a6b61a40f4091f154d2e34e91c0b59968df0
MD5 e5662548f9b5ed9d821621e7367c996e
BLAKE2b-256 d5ededcce9c7a6cd2da51f6da57cf6c4723d71f50b69e4334b41596f8fa7ae1f

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ddc028258dceaf7285039c8ab1a77edc82fb5870af52bbfd8aab8f6b50923ac9
MD5 e34820fc48985d723ec55fff822fdfc9
BLAKE2b-256 12a2eba47f75b8b3f13c3e872dd467e3e93caad3e15721969f23e888adfe1900

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dcbd8ad7556c6963a3b59af95e954eaeeee9e473efcc0359a6aa8da8f760ef93
MD5 7088ec679ff6a65201fa4d49faf33f13
BLAKE2b-256 938119e02606ab8a482b18a53b42074946c461195c0bed00f5fcc29f181ce68f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_24_i686.whl
Algorithm Hash digest
SHA256 b01a59d2075237c494534173a9de62a68c51abff0a7d5705064032e61e75bfe1
MD5 879a59c266242b0923ffefb7da5b3a82
BLAKE2b-256 f9769853f2382723e0f89cddd955c8b4836e67b8c8590ef6aa13774774a9c59e

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 45b974daf2127ecc89bd0a08e908bbd86ae503c49e0311bb22c15a2345eaccba
MD5 ef4265923fb6aae90e3c4076f5e27485
BLAKE2b-256 3140960c8c270fab3a684bb259810d61ee12811e9e7db915491ceaaca480ba21

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: KoiLang-1.2.0a0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 188.9 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.2.0a0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4b8b0b37adb7488e9c704c2ba387f43a5f58ddad0c61279657d71f7fb38b252c
MD5 68474137b80d09d53f188664dc9080ce
BLAKE2b-256 4986f39a7157c3e477fc241b7bbae285314477ece3e51d89064d0798d12c6ac6

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: KoiLang-1.2.0a0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 170.9 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.2.0a0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 35e6e5c7726b2f149303268ca3f2b10fdb831198bb2fd14a805ff0a4e0c60068
MD5 bc150d64cab44086bde0d0b7eb9b2d73
BLAKE2b-256 e747ad37bdffe729e3ecdacb2700d2f171c6dffe760249cfd2849d56856e856d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9a84585cda938dfe61384d202c1caf40f4d9e179e43d42509437db814e7eb2ea
MD5 a40a31ca1064c3c08a74f07611957385
BLAKE2b-256 a866850c79de870b155b9b32603e87ed6b92be9f7e735ee5d5cd0697d2edd542

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 44dc8c63963943db762c36f62c95ea3974b414e1284f772434d4144b528b77e9
MD5 afc8df456ee6013142a9ec9fbf246573
BLAKE2b-256 491876b7ad6245bd9761fe1a118fc221df9be4cd47250d754f917a5b2789f139

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 7cf435c7ceb14d11fef2462d42250fe7979c4a6596854e9b999e528588372471
MD5 43dec929f9152eced34b540c6843e0a9
BLAKE2b-256 09a3be4a16a92faa924f99639fa359d03b2877691bb7715e8d1c38c6ed6ae893

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 73a9c87fcab9584b0bae5c9d7f68fabaa612a7c5321de6a5cb67134f4d0b778b
MD5 57004a3109d91cb3458780103ffa49ff
BLAKE2b-256 00dcde3482729ab512f69ac9671643c6549a6c89525e017a486a78878dbd8497

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: KoiLang-1.2.0a0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 208.9 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.2.0a0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 7c607c8eb44d2953e8387f9f57aa4774b9095e4e1215a69c64af4c9540dff2a3
MD5 d0765efd531d95155858d18cc1c7883a
BLAKE2b-256 97489a4d7e3ea165779304f367f4d019d48f2bde33918e9f12d86001df7f7d03

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: KoiLang-1.2.0a0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 183.0 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.2.0a0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 9841b4e1ca00ddcd97a02fd5a2258399d4bb6b546944c57ca0e1870f39f97fca
MD5 a0d9e5f911afe5a8dddc7bb820121ac6
BLAKE2b-256 fa97c0181dd8728fec63306c75a4f001246b301cf84a8acde261a9f063973c2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bef2984583e004e2a35da85373604ce88b8925414d1ef0e6030b60f20e9e2b99
MD5 7b3e2b40d01dd1e6ead3ca416ca33ad9
BLAKE2b-256 5bedfc533179a7131ac6f8d330c9ddb19f52516fe8738f9b8fa0d94469d9fdc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 211187d39712d7eb9a24f13ac2102499908abe010c79fdd3466a063d3a0756d0
MD5 ed86379d47ac950d4a2bc57b1ea27d65
BLAKE2b-256 052d2811899e1dde72b91ce6e33eeccaa5924fc5c4a9f7be9365fc0f5dd25fe0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 4cdd05b81479af633f7985368ff351b34e41159a6f2a81a8a95e0c36beb30647
MD5 bf045b967b85058ab99e09c4e97053f9
BLAKE2b-256 ca91cdef87886933e8f7fc4b39c3730836d4e0b8c4b20b4cb680494afad191cf

See more details on using hashes here.

File details

Details for the file KoiLang-1.2.0a0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for KoiLang-1.2.0a0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 91e9ea4170103bc92199264bf3e9700290795c928bcc2d3f6bc345a4036b3332
MD5 c771d3e4a702c97474ba8e92ee388b02
BLAKE2b-256 ae236e712db14067faf6502b3b4fbb9a0287c6d9443a071b91829b337c21d39d

See more details on using hashes here.

Supported by

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