Skip to main content

Sneact is a python library for building user interfaces

Project description

Sneact

Sneact is a python library for building user interfaces.

That's so draft.

Hot new features!

Conditions!

from sneact import Sneact, s, _
from sneact.cond import when, when_not, then
from sneact.html import div, p

scope = {
    "ok_text": "Hello!",
    "not_text": "Hello not!",
    "show_text": True
}
page = (+Sneact(scope)
    <<div>>_
        @when(s.show_text, +then
            <<p>> s.ok_text <<-p>>_
        )
        @when_not(s.show_text, +then
            <<p>> s.not_text <<-p>>_
        )
    <<-div>>_
)
Result:
<div>
<p>Hello!</p>
</div>

Loops!

from sneact import Sneact, s, _
from sneact.html import div, img
from sneact.loop import for_each, do, item

scope = {
    "images": ["cat.png", "dog.png", "frog.png"]
}
page = (+Sneact(scope)
    <<div>>_
        @for_each(s.images, +do
            <<img(src=item)>>_
        )
    <<-div>>_
)
Result:
<div>
<img src=cat.png>
<img src=dog.png>
<img src=frog.png>
</div>

Example 1

Python code

from sneact import Sneact, s, _
from sneact.html import div, p, img

scope = {
    "title": "Tiger",
    "subtitle": "About tigers",
    "image": '"tiger.png"',
}
home_page = (+Sneact(scope)
    <<div>>_
        <<p>> s.title <<-p>>_
        <<p>> s.subtitle <<-p>>_
        <<div>>_
            <<p>> s.text <<-p>>_
            <<img(src=s.image)>>_
        <<-div>>_
    <<-div>>_
)
scope["text"] = "Hello tigers. We love Tigers."
result = home_page.as_html()

Resulting html

<div>
<p>Tiger</p>
<p>About tigers</p>
<div>
<p>Hello tigers. We love Tigers.</p>
<img src="tiger.png">
</div>
</div>

Pytest code link

Example 2

Python code

from sneact import Sneact, s, _
from sneact.html import p, h1, header, footer

scope = {}
page = (+Sneact(scope)
    <<header>>_
    	**s.header
    <<-header>>_
    <<p>> "Lorem you know" <<-p>>_
    <<footer>>_
    	**s.footer
    <<-footer>>_
)
scope["header"] = (+Sneact(scope)
    <<h1>> "Page" <<-h1>>_
)
scope["footer"] = (+Sneact(scope)
    <<p>> "Copyright Kiselev Nikolay 2020" <<-p>>_
)
result = page.as_html()

Resulting html

<header>
<h1>Page</h1>
</header>
<p>Lorem you know</p>
<footer>
<p>Copyright Kiselev Nikolay 2020</p>
</footer>

Pytest code link

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

sneact-0.1.1.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

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

sneact-0.1.1-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file sneact-0.1.1.tar.gz.

File metadata

  • Download URL: sneact-0.1.1.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.5 Linux/5.8.0-7630-generic

File hashes

Hashes for sneact-0.1.1.tar.gz
Algorithm Hash digest
SHA256 105a42055092e68074c290f1195ceb5a1ceb48e73be679ea6ca38f7492c82cc9
MD5 02f4fef170404405f5b0a75b03a257b5
BLAKE2b-256 df54b81d21d2f3cda8e64821f64d199c0a092214ba1f1773e3204e666d4939dd

See more details on using hashes here.

File details

Details for the file sneact-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: sneact-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.5 Linux/5.8.0-7630-generic

File hashes

Hashes for sneact-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 07c5c21a44e5fc88884694dacb54755dd087e984629321b88b5a31af5dc00a7c
MD5 789e722337443e202325c9ba8c0a6dc2
BLAKE2b-256 827c2eb83a17080a1e58d40fb657c410763086b3d21c829ac0939a7577e7469b

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