mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[MPY/MOD/OS] Added "name" attribute, "getlogin()" function and "username" key in "uname()"
"os.name" returns either "Omega" (only if OMEGA_VERSION is defined) or "Epsilon" "os.getlogin()" returns the calculator owner username "os.uname()" returns an object which has now the "username" attribute
This commit is contained in:
@@ -537,11 +537,13 @@ Q(SEEK_END)
|
||||
// os QSTRs
|
||||
Q(os)
|
||||
Q(uname)
|
||||
Q(getlogin)
|
||||
Q(sysname)
|
||||
Q(nodename)
|
||||
Q(release)
|
||||
Q(version)
|
||||
Q(machine)
|
||||
Q(username)
|
||||
Q(rename)
|
||||
Q(listdir)
|
||||
|
||||
|
||||
@@ -32,12 +32,19 @@ STATIC const MP_DEFINE_STR_OBJ(modos_uname_info_machine_obj, "NumWorks N0100");
|
||||
STATIC const MP_DEFINE_STR_OBJ(modos_uname_info_machine_obj, "NumWorks Simulator");
|
||||
#endif
|
||||
|
||||
#if defined(OMEGA_USERNAME)
|
||||
STATIC const MP_DEFINE_STR_OBJ(modos_uname_info_username_obj, MP_STRINGIFY(OMEGA_USERNAME));
|
||||
#else
|
||||
STATIC const MP_DEFINE_STR_OBJ(modos_uname_info_username_obj, "");
|
||||
#endif
|
||||
|
||||
STATIC const mp_rom_map_elem_t modos_uname_info_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_sysname), &modos_uname_info_sysname_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_nodename), &modos_uname_info_nodename_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_release), &modos_uname_info_release_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_version), &modos_uname_info_version_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_machine), &modos_uname_info_machine_obj },
|
||||
{ MP_ROM_QSTR(MP_QSTR_username), &modos_uname_info_username_obj },
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(modos_uname_info_obj, modos_uname_info_table);
|
||||
@@ -46,6 +53,10 @@ mp_obj_t modos_uname(void) {
|
||||
return (mp_obj_t)&modos_uname_info_obj;
|
||||
}
|
||||
|
||||
mp_obj_t modos_getlogin(void) {
|
||||
return (mp_obj_t)&modos_uname_info_username_obj;
|
||||
}
|
||||
|
||||
mp_obj_t modos_remove(mp_obj_t o_file_name) {
|
||||
|
||||
size_t len;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include <py/obj.h>
|
||||
|
||||
mp_obj_t modos_uname();
|
||||
mp_obj_t modos_getlogin();
|
||||
mp_obj_t modos_remove(mp_obj_t o_file_name);
|
||||
mp_obj_t modos_rename(mp_obj_t o_old_name, mp_obj_t o_new_name);
|
||||
mp_obj_t modos_listdir();
|
||||
|
||||
@@ -1,16 +1,29 @@
|
||||
#include "modos.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <py/obj.h>
|
||||
#include <py/objstr.h>
|
||||
|
||||
MP_DEFINE_CONST_FUN_OBJ_0(modos_uname_obj, modos_uname);
|
||||
MP_DEFINE_CONST_FUN_OBJ_0(modos_getlogin_obj, modos_getlogin);
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(modos_remove_obj, modos_remove);
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(modos_rename_obj, modos_rename);
|
||||
MP_DEFINE_CONST_FUN_OBJ_0(modos_listdir_obj, modos_listdir);
|
||||
|
||||
#ifdef OMEGA_VERSION
|
||||
STATIC const MP_DEFINE_STR_OBJ(modos_sysname_obj, "Omega");
|
||||
#else
|
||||
STATIC const MP_DEFINE_STR_OBJ(modos_sysname_obj, "Epsilon");
|
||||
#endif
|
||||
|
||||
STATIC const mp_rom_map_elem_t modos_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_os) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_uname), &modos_uname_obj},
|
||||
{ MP_ROM_QSTR(MP_QSTR_getlogin), &modos_getlogin_obj},
|
||||
{ MP_ROM_QSTR(MP_QSTR_remove), &modos_remove_obj},
|
||||
{ MP_ROM_QSTR(MP_QSTR_rename), &modos_rename_obj},
|
||||
{ MP_ROM_QSTR(MP_QSTR_listdir), &modos_listdir_obj},
|
||||
{ MP_ROM_QSTR(MP_QSTR_name), &modos_sysname_obj}
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(modos_module_globals, modos_module_globals_table);
|
||||
|
||||
Reference in New Issue
Block a user