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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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