Funix 0.6.0
0.6.0 (2025-05-02)
Highlights
-
URLs and iframe codes can be copied from the Funix App interface, making it easier to share or embed.
-
The logging system, when enabled, can now record the user's IP address, the name of the function called, the server file accessed, and other information.
-
Now the sidebar functions have icons and are sorted by the order of definition.
-
Support
just_runargument for@funix, you don't need to clickrunbutton, the Funix App will run the function automatically when you enter the function's page. -
Header and footer strings can now be modified through the theme, and simple string templates are supported. The icons at the footer can be hidden at any time, and the function name can also be displayed in the input panel. Here is an example:
from funix import import_theme, funix import_theme({ "name": "example", "funix": { "header": "Example - {{functionName}}", "footer": "©️ {{year}} Example, Funix: {{funixLink}}", } }) @funix(theme="example") def my_function(): pass
-
Function jumping is supported, a funix decorated function can use
typing.Callableto jump to another funix decorated function, examples are shown below:from typing import Callable def test_function(x: int, y: int) -> int: return x + y def normal_jump() -> Callable: return test_function
If you want to jump with arguments, you can do like this:
from typing import Callable def test_function(x: int, y: int) -> int: return x + y def args_jump() -> Callable: x = 1 return lambda _: test_function(2, y=x)
-
You can use
funix.generate_redirect_linkto generate a<a>tag that can redirect to a funix function. Syntax:funix.generate_redirect_link(function_name, args, kwargs). -
Support
dynamic_defaultsargument for@funix, you can usedynamic_defaultsto generate default values for function arguments. For example:from funix import funix def get_x(): return 1 @funix(dynamic_defaults={ "x": get_x }) def my_function(x: int): return x
Or you can use this with session class, use
lambda self: ...to get the session object:from funix import funix_method class A: def __init__(self, x: int): self.x = x def get_x(self): return self.x @funix_method( dynamic_defaults={ "x": lambda self: self.get_x() } ) def calc(self, x: int, y: int): return self.x + x
-
Auto read first line in function's
__doc__as title (Disabled by default, useGlobalSwitchOption.DOCSTRING_FIRST_LINE_TO_TITLEto turn it on). -
Allow expression in
whitelist,dynamic_defaultsandexample
Breaking Changes
There are major differences between the previous version and this version, so please be aware that some issues and features may break past code.
Bug Fixes
- code render in
ReactMarkdown(55aa745, @yazawazi) - repo path change (3618103, @yazawazi)
- add
/update/in log, and make input & output UI width can set in code (798a940, @yazawazi) - allow empty alias (d4390b3, @yazawazi)
- datagrid height (2567bd3, @yazawazi)
- add empty stack for empty data frame (daf61e5, @yazawazi)
- check size in rejections (264504c, @yazawazi)
- handle null
funix_disable_input_title(f8c2ce9, @yazawazi) - leading zero (d1d8baf, @yazawazi)
- add title for markdown link (9254873, @yazawazi)
Features
- try to add
rowsPerPageOptions(d82f939, @yazawazi) - add
autosizeOnMount(f7535a9, @yazawazi) - log ip, function name and file info (c8897a3, @yazawazi)
- add share dialog (4afd595, @yazawazi)
- add icon and keep order for class methods (543e134, @yazawazi)
- make a dashboard for funix logs (b19947a, @yazawazi)
- add
just_runargument for@funix(13de1f2, @yazawazi) - add function analytics (8156ea9, @yazawazi)
- add
SESSION_COOKIE_SECURE(c392507, @yazawazi) - support custom overrides (8a09d6f, @yazawazi)
- support custom header, footer text and hiding footer icons (62fc3ee, @yazawazi)
- support
Callablejump (c17e77a, @yazawazi) - support get
localsafter calling (1c1cf42, @yazawazi) - support
generate_redirect_link(8282656, @yazawazi) - support
dynamic_defaults(63aacef, @yazawazi) - fix docstring label & support overwriting help text (32ec3f0, @yazawazi)
- funix 2025 winter new features and bug fixes (72234a9, @yazawazi)
- add global
ajump (5976b46, @yazawazi) - fix tuple arguments (7331c05, @yazawazi)
Refactors
- initial upgrade dependency (important) (a120c8f, @yazawazi)
Chores
- Remove build artifacts from
developbranch (5c28a69, @NanamiNakano) - frontend: Lock package manager version to prevent build error (40ff48e, @NanamiNakano)
- mui premium (d43d97b, @NanamiNakano)
Reverts
- remove tuple support for
examplesandwhitelist(e9b6781, @yazawazi)