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.1.2.tar.gz (370.3 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.2-cp313-cp313t-win_amd64.whl (213.9 kB view details)

Uploaded CPython 3.13tWindows x86-64

koilang-1.1.2-cp313-cp313t-win32.whl (186.0 kB view details)

Uploaded CPython 3.13tWindows x86

koilang-1.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

koilang-1.1.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

koilang-1.1.2-cp313-cp313t-macosx_11_0_x86_64.whl (217.0 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ x86-64

koilang-1.1.2-cp313-cp313t-macosx_11_0_arm64.whl (228.1 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

koilang-1.1.2-cp313-cp313-win_amd64.whl (188.7 kB view details)

Uploaded CPython 3.13Windows x86-64

koilang-1.1.2-cp313-cp313-win32.whl (164.6 kB view details)

Uploaded CPython 3.13Windows x86

koilang-1.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

koilang-1.1.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

koilang-1.1.2-cp313-cp313-macosx_11_0_x86_64.whl (207.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

koilang-1.1.2-cp313-cp313-macosx_11_0_arm64.whl (218.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

koilang-1.1.2-cp312-cp312-win_amd64.whl (189.5 kB view details)

Uploaded CPython 3.12Windows x86-64

koilang-1.1.2-cp312-cp312-win32.whl (165.0 kB view details)

Uploaded CPython 3.12Windows x86

koilang-1.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

koilang-1.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

koilang-1.1.2-cp312-cp312-macosx_11_0_x86_64.whl (210.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

koilang-1.1.2-cp312-cp312-macosx_11_0_arm64.whl (220.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

koilang-1.1.2-cp311-cp311-win_amd64.whl (194.3 kB view details)

Uploaded CPython 3.11Windows x86-64

koilang-1.1.2-cp311-cp311-win32.whl (167.4 kB view details)

Uploaded CPython 3.11Windows x86

koilang-1.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

koilang-1.1.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

koilang-1.1.2-cp311-cp311-macosx_11_0_x86_64.whl (212.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

koilang-1.1.2-cp311-cp311-macosx_11_0_arm64.whl (222.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

koilang-1.1.2-cp310-cp310-win_amd64.whl (193.2 kB view details)

Uploaded CPython 3.10Windows x86-64

koilang-1.1.2-cp310-cp310-win32.whl (167.3 kB view details)

Uploaded CPython 3.10Windows x86

koilang-1.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

koilang-1.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

koilang-1.1.2-cp310-cp310-macosx_11_0_x86_64.whl (209.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

koilang-1.1.2-cp310-cp310-macosx_11_0_arm64.whl (219.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

koilang-1.1.2-cp39-cp39-win_amd64.whl (193.9 kB view details)

Uploaded CPython 3.9Windows x86-64

koilang-1.1.2-cp39-cp39-win32.whl (168.0 kB view details)

Uploaded CPython 3.9Windows x86

koilang-1.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

koilang-1.1.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

koilang-1.1.2-cp39-cp39-macosx_11_0_x86_64.whl (210.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

koilang-1.1.2-cp38-cp38-win_amd64.whl (196.4 kB view details)

Uploaded CPython 3.8Windows x86-64

koilang-1.1.2-cp38-cp38-win32.whl (170.4 kB view details)

Uploaded CPython 3.8Windows x86

koilang-1.1.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

koilang-1.1.2-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

koilang-1.1.2-cp38-cp38-macosx_11_0_x86_64.whl (214.2 kB view details)

Uploaded CPython 3.8macOS 11.0+ x86-64

File details

Details for the file koilang-1.1.2.tar.gz.

File metadata

  • Download URL: koilang-1.1.2.tar.gz
  • Upload date:
  • Size: 370.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for koilang-1.1.2.tar.gz
Algorithm Hash digest
SHA256 67462bae9b4f8c7c4cec3c18b7e9b5477f12ef0c86109a938e7ba46768102968
MD5 470488e5d8df751c275c4b6563cdc6ad
BLAKE2b-256 acb1fc95f72113cdb3d0d819d57830c37402e858554e4fa80cf74e7517ae640b

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: koilang-1.1.2-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 213.9 kB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 d793d0e541767e2d6db76d7940bff6a06131ac67d72104f2d8f50728ce9ab835
MD5 9eb4d235bb7c47ff7c18198b2715323e
BLAKE2b-256 c64c2d6727ccfd62087ea35408eac4ddb01c3b02e5fab7903cb7f825e016c218

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313t-win32.whl.

File metadata

  • Download URL: koilang-1.1.2-cp313-cp313t-win32.whl
  • Upload date:
  • Size: 186.0 kB
  • Tags: CPython 3.13t, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 7b12e13f76baa993a83fc988ab6deb3a3e56f454c415c771b0eb9ef18d9a94ad
MD5 c8626a21bfd397ee6c3c0ea33871626a
BLAKE2b-256 7c88ae393898a2d5c3814bd34084de4dffac0395dc5abe6112cd1c51fd9eea10

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eba1e42e272fd6f1ddaadccd9e7698bbd0483bd856fa6e376bacbc384d3d8ebc
MD5 77f590477d0bffcf4b2d40685894ffaa
BLAKE2b-256 29f0c9359af0386803ae8d923bd1ff22afa28d5c14a7aef9054c893e1a965916

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 d5a87767a158df0b01e7b3771cd7fd3552bfef321fd5b704da2d3a67fe69363b
MD5 a49513e0512443b0eebc2a397d9a03c0
BLAKE2b-256 8f356fb2d2f32e0f0633ab7b1f7021b6e192fe2ba8d37dcbf493819b7237c0d8

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313t-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp313-cp313t-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 67b7d07d8ff6764af4b8a9ed79c52871b53f75f6ad9e02927a8c1683b99370bc
MD5 e9a53fdab969f27dd8ff91e913f70f55
BLAKE2b-256 1b1b5fb8bc81af85c345fde3b0180f192b78c62e05c51bc2e7c8d3b14aff5ff1

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e010c378f59a2740435db7bcac6668e5131f4a551213fd3cbe4b867842aa70a1
MD5 6acd7bd46dcc4d49a8a2eb0701e1027b
BLAKE2b-256 847f03d6d879226e68747ff45aca44dbdaf4b5c97299a243b61976b0b5003581

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: koilang-1.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 188.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 17e6cd8d174c952247f075cac2867524e2f8bfde912402986bbd941cfa09e17c
MD5 be4f5aef829c52c63418ee78f49fa8ec
BLAKE2b-256 47b34c7d20e21faf19e5acd35af345674c0a58409d155b108818542ee23062a2

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313-win32.whl.

File metadata

  • Download URL: koilang-1.1.2-cp313-cp313-win32.whl
  • Upload date:
  • Size: 164.6 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 b22d0090c9bf2bdcfe2c18ec9655ec598e79124aa0a3a574fd28b77640407db9
MD5 f20ad6c18dd1157c70793f496ecc764f
BLAKE2b-256 a81356e1140966831711f2be07702ed1c8009588e43816916018fe05cb96c92e

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 92f97d26310f4c3a27761432d1e07c7f1cf1122f0b4225f95349f79725d27ad6
MD5 552ef15f11c6cf814c52ed1ebb117526
BLAKE2b-256 29dce1a76de3ad4d8a86c4155652657be7b9b3d7170fc1ee0bc0b0efd60a07b4

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 59c3403c49037643afb5f68e216b232e56ca3bd17d57225d936510497c620467
MD5 09d259a06dac8caaa01fc815d7c66d32
BLAKE2b-256 ce3416ff56a842ddffc3a8e918b172655781e9319beacbc2b4d02600601d3b66

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 1c2e86089a5f6460e8f07d1f15887b530fad190b13437d52392f81b3f78b6de5
MD5 66c6f536710467878edcf43efe8d52cd
BLAKE2b-256 46f762d64b7cb4453f95daa0225417861ab3e1c5558d8bb75356361261b6ebb7

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc6c0f67f558a859e8f8a426f0a065135240af7ed277f446b195d489589146b2
MD5 c3b3bbbee16978c227fdbb1e3510c92e
BLAKE2b-256 38cc9c4b47633babfe271d0bf9cc5d33ba6c0d26fc52cdcfc3424feba47e43ac

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: koilang-1.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 189.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 81a26cee1374ea0af06ef252b32287a922a4f946513b1de8afc25092963b16d1
MD5 5c0b00c994cfdf24e22a0ea6f959b61e
BLAKE2b-256 390d7eed756acf6e4090bec90ce93282566503de566631d78c70d30931fabe93

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp312-cp312-win32.whl.

File metadata

  • Download URL: koilang-1.1.2-cp312-cp312-win32.whl
  • Upload date:
  • Size: 165.0 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 11a0b6c4d9b5659c267279f840798c6e90d2883e0c24dc07e8e3ecb8dd9f122d
MD5 d61a67464dd23543429998e82fa7b19d
BLAKE2b-256 d5c8b86bba4507e19e76932988c28f3889b721a3f8edf28f0bcbd4d236c33f60

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 978ae16ed1d0b3a369600208b5c57d376cf2a2c1aef38b0068a536642244ff68
MD5 dc23e209ae4f3beab59a928fe7e2b225
BLAKE2b-256 631a96644adf985ef0ca937f329e98c76279d8eb536d7eea0a04c29213fb8f71

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 b4ef27ee2788b0a65333f41e192628c8f45cca5e3a230e8c4860964a6b33ed42
MD5 b02c9ec712ca846f34027bfc29313672
BLAKE2b-256 545845bc6759bcad18211c109fe09c1a032835b81d468b230a18b69466494ffd

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 04318fab51cf0f9a5292784f04e7b0ebdec08b629aa0b0b69d1865a4a98dcf2c
MD5 c6c5ca1699489a72bdda4fca5ac74533
BLAKE2b-256 55c207efae50f750ddc36970397f64c43a37a13ea8ef11016734a68e3c25c543

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 83f8e96bc9c60303cce04139c81d46c0909b3fe8b100f35ace86a015180cb262
MD5 d2387dd09319bfc33aa72a745a63e0b9
BLAKE2b-256 e066d740364e63e0ec5bd92ee5372730a3c75edf8cc87d33166bd2a7088d51bb

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: koilang-1.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 194.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 427922fb62720ef819a722eb8f07571e02c665d288b042257f05797adc21cf47
MD5 13f1b6903af56dcc3fd8ed957d2b5fb4
BLAKE2b-256 1a405aecbf03fc77baca1cb461e805252895377625199d39a554b0f18a801d44

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp311-cp311-win32.whl.

File metadata

  • Download URL: koilang-1.1.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 167.4 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 80854f515dc58e55472c467b8c530a409130d0feb978eab4e58200a70821faf8
MD5 206472e7980db26c34450bb373c3cd02
BLAKE2b-256 b8783c7e6868268e648681af708e27e62f82f70c07eaccc83e7f14b4e186aa7e

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e676e5285887d58b062782fda6ae3be0da62ce2671db96ebe74b012a988627fb
MD5 8e0d2b41268945b48d39ea64cdf12fd4
BLAKE2b-256 5f67878b9e942aafef32316db57e636c9c14b6fe61f53bd8f95380977e9ccf8b

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 baed4e7f9097486b49a2962862bd6a6dac5be61016663affbc44fc60ce45d8bf
MD5 616e9a946395cf16ae94da4b9472a1b6
BLAKE2b-256 b20197a453bb341e18ed7804b7a797a5601656611d5ec1ee91af9bf810cb933e

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 dbbf1e75d064b4a9e7f245c87c310f912974a36ad7f3447948912f9c984b010f
MD5 f7086e391d66d81b6ccbbd6193811199
BLAKE2b-256 9ef8fdca42c5c57902a4588b045f2877a4b966dd44c95b0d9368ed0ef0af6d57

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9504d806e6108457f5802e88900f87d3d7995fb3c058f46131d4b0a91e17205d
MD5 f9559f37c5ddb817a9726426c4c7d76f
BLAKE2b-256 8004a8a0fd7db7ffbc4c1b44e9e57777d45a20f052d08102e5be04fe4dbe8dab

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: koilang-1.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 193.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9994a3bc6cfb687eb535d0258c0e9602268b2974eae330a59448fddba8436ca0
MD5 0d618882eb92614188c4d55edf9dc5f7
BLAKE2b-256 9c1c9e48d0a4026a5c709aeace60c324885c34856fcc821a615399858ceb3887

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp310-cp310-win32.whl.

File metadata

  • Download URL: koilang-1.1.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 167.3 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 63ef3b3c0aa6b60cee401fc33294d4bbf5d744747ec196eeb8b4af816266ac0d
MD5 d05d0747c96c912e46f1d9ff43701e6a
BLAKE2b-256 5569c677099dee6c7e29b0e2d3627e696cffc063df3dd888e48157e0565f231c

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e0415e8a56982e3f414ee670c3b95377b9d407dab3af4d9094529b33975c2d61
MD5 9c29be8608f1a0a5cff2f2e68be9479b
BLAKE2b-256 e8b2bf2822770dea83c79cb89f89414e5047f34c00527e400422fd5075667b62

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 6494762670483b9746c9f4042bac0f34affa738720285cba646c6c556c7e5202
MD5 030b1098bdeb94f1ac09b01861d0d274
BLAKE2b-256 e6b80e7fa8b1903a608437216bd1bbe5f080ca0d960734686fb5ed52f474ca28

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a66e74a1efa98b9278b1a160c8a72d4705a1c01ec082269d4093147b03bbc1d8
MD5 0d4b1739c91311b1ad3895ec45fcf8e2
BLAKE2b-256 a17796a84efa386479614019075468f7013cf3db713fc21ff4e995f64c8d36b6

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 583abb03c92d4b2ede522c2384503017be9dc419f57fc168f9c7ad94dcbf59e3
MD5 a809202e9ca510d2ba9d35e3c4e2492b
BLAKE2b-256 f92c0b1389d6506f9b9d882ed109468ad8f84f6b13a894aaae9d5476fa6b447b

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: koilang-1.1.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 193.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c447df0e10b4eca512c22ed2ff39754c14cea4b378c0af606642e7ebe73fe0d9
MD5 8df47c204e59d3d965508af85cca3e59
BLAKE2b-256 39d6c6f3e6438914d649e95c4309ca7911785f0410b29916ec62dcfb1248daf0

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp39-cp39-win32.whl.

File metadata

  • Download URL: koilang-1.1.2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 168.0 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 c926d180e03a29adfa8c4c1675a7ffcebbc87def15ad381850966c6a2894ad49
MD5 a258c271b0fb25c0f5f012c51a9ee272
BLAKE2b-256 cff28c4d51c53b9662cc853a1192c459e66133b49b2f8225720abee3cf859d8a

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1c1b7f8087df990a9a8c8e06cad285ada0621f29ad2c40edceb39b1b9ed37fb6
MD5 dd204cfa46f41eb9e38c51689c3242ce
BLAKE2b-256 36c96fed8749f73767d7987a4a4c63986bcebac670d7d46ad5597492b01be583

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ce9db8faa9e950a8c64967e5adeb9080cb3b023a509cff29799dfaa4a0a8ce09
MD5 4d2b9e13c884cb35b22505d9230e5f26
BLAKE2b-256 5fb675eda3aa79e3b1840c238caab281bad3c210903d6ca838da469269782464

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 348608096c00c95c4e1e1e458c75cfa9260fdd323980f076bf1584ffa9375af1
MD5 883a5473974968502abc0896a8f2dca4
BLAKE2b-256 d48eff609a5f46666fb5e9735d8fc0db8791e40ef30df00c9e5051f26092deac

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: koilang-1.1.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 196.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 79fd60522192a3e5d766365fc4b092183ced325119dda9245c228fdc69aa38d3
MD5 8f9da913f9b655b57eb5040023203a49
BLAKE2b-256 af418179e81f97a4d4fc7390a8d13dd398ce28d419a9a0cbba75b09dfef610c0

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp38-cp38-win32.whl.

File metadata

  • Download URL: koilang-1.1.2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 170.4 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for koilang-1.1.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 c8b9f19423a2f57e07cd8b61bb8570b5199090cc61fbe0e1d5f5d63b6b1d0961
MD5 9bcf03885c495f996d80921c8129a647
BLAKE2b-256 0f685f43bf1ca4a3b4cbf9abdffaa240004e8d0d94d31160bddb671ec2c0ba50

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0235652428407aaa8f993be44bf358a837ba37a8fe6c3233b4cc6715adaf787d
MD5 80fda6de73a599b0ee0386c800110179
BLAKE2b-256 9185a3deadd82aabd139e71a32cf05e142e048e1fbbfbb29f40625282be50603

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp38-cp38-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 6679771ad7cf44c06dc0b175279e818a5263bed68517be2ab6af24cf842a66ed
MD5 35c045cd350de69c77f69eef78a58232
BLAKE2b-256 809cbab56cc9cea2b9a4873044e16a1b988888c597a3095bade957ea1ef1aa1f

See more details on using hashes here.

File details

Details for the file koilang-1.1.2-cp38-cp38-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for koilang-1.1.2-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 498a7edebb7ba3fa05c99adff2b8780e347870b44a2d8ee8f27e98fbd2c0463c
MD5 3afa5162ab893edb24d300f437e874a3
BLAKE2b-256 543ed9aa425bd638639af802958d79c2ac6e776260d769a6e4619ecd2d307ee9

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