Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
3d3ef36e
Commit
3d3ef36e
authored
May 04, 2015
by
Paul Sokolovsky
Browse files
modstruct: Rename module to "ustruct", to allow full Python-level impl.
parent
1829d86e
Changes
9
Hide whitespace changes
Inline
Side-by-side
py/builtin.h
View file @
3d3ef36e
...
...
@@ -87,7 +87,7 @@ extern const mp_obj_module_t mp_module_io;
extern
const
mp_obj_module_t
mp_module_math
;
extern
const
mp_obj_module_t
mp_module_cmath
;
extern
const
mp_obj_module_t
mp_module_micropython
;
extern
const
mp_obj_module_t
mp_module_struct
;
extern
const
mp_obj_module_t
mp_module_
u
struct
;
extern
const
mp_obj_module_t
mp_module_sys
;
extern
const
mp_obj_module_t
mp_module_gc
;
...
...
py/modstruct.c
View file @
3d3ef36e
...
...
@@ -197,7 +197,7 @@ STATIC mp_obj_t struct_pack(mp_uint_t n_args, const mp_obj_t *args) {
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
struct_pack_obj
,
1
,
MP_OBJ_FUN_ARGS_MAX
,
struct_pack
);
STATIC
const
mp_map_elem_t
mp_module_struct_globals_table
[]
=
{
{
MP_OBJ_NEW_QSTR
(
MP_QSTR___name__
),
MP_OBJ_NEW_QSTR
(
MP_QSTR_struct
)
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR___name__
),
MP_OBJ_NEW_QSTR
(
MP_QSTR_
u
struct
)
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_calcsize
),
(
mp_obj_t
)
&
struct_calcsize_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_pack
),
(
mp_obj_t
)
&
struct_pack_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_unpack
),
(
mp_obj_t
)
&
struct_unpack_obj
},
...
...
@@ -205,9 +205,9 @@ STATIC const mp_map_elem_t mp_module_struct_globals_table[] = {
STATIC
MP_DEFINE_CONST_DICT
(
mp_module_struct_globals
,
mp_module_struct_globals_table
);
const
mp_obj_module_t
mp_module_struct
=
{
const
mp_obj_module_t
mp_module_
u
struct
=
{
.
base
=
{
&
mp_type_module
},
.
name
=
MP_QSTR_struct
,
.
name
=
MP_QSTR_
u
struct
,
.
globals
=
(
mp_obj_dict_t
*
)
&
mp_module_struct_globals
,
};
...
...
py/objmodule.c
View file @
3d3ef36e
...
...
@@ -142,7 +142,7 @@ STATIC const mp_map_elem_t mp_builtin_module_table[] = {
{
MP_OBJ_NEW_QSTR
(
MP_QSTR__collections
),
(
mp_obj_t
)
&
mp_module_collections
},
#endif
#if MICROPY_PY_STRUCT
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_struct
),
(
mp_obj_t
)
&
mp_module_struct
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_
u
struct
),
(
mp_obj_t
)
&
mp_module_
u
struct
},
#endif
#if MICROPY_PY_BUILTINS_FLOAT
...
...
py/qstrdefs.h
View file @
3d3ef36e
...
...
@@ -461,7 +461,7 @@ Q(print_exception)
#endif
#if MICROPY_PY_STRUCT
Q
(
struct
)
Q
(
u
struct
)
Q
(
pack
)
Q
(
unpack
)
Q
(
calcsize
)
...
...
@@ -469,6 +469,7 @@ Q(calcsize)
#if MICROPY_PY_UCTYPES
Q
(
uctypes
)
Q
(
struct
)
Q
(
sizeof
)
Q
(
addressof
)
Q
(
bytes_at
)
...
...
stmhal/mpconfigport.h
View file @
3d3ef36e
...
...
@@ -126,6 +126,7 @@ extern const struct _mp_obj_module_t mp_module_network;
{ MP_OBJ_NEW_QSTR(MP_QSTR_time), (mp_obj_t)&mp_module_utime }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_select), (mp_obj_t)&mp_module_uselect }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_socket), (mp_obj_t)&mp_module_usocket }, \
{ MP_OBJ_NEW_QSTR(MP_QSTR_struct), (mp_obj_t)&mp_module_ustruct }, \
// extra constants
#define MICROPY_PORT_CONSTANTS \
...
...
tests/basics/struct1.py
View file @
3d3ef36e
import
struct
try
:
import
ustruct
as
struct
except
:
import
struct
print
(
struct
.
calcsize
(
"<bI"
))
print
(
struct
.
unpack
(
"<bI"
,
b
"
\x80\0\0\x01\0
"
))
print
(
struct
.
calcsize
(
">bI"
))
...
...
tests/float/float2int.py
View file @
3d3ef36e
# check cases converting float to int, relying only on single precision float
import
struct
try
:
import
ustruct
as
struct
except
:
import
struct
# work out configuration values
is_64bit
=
struct
.
calcsize
(
"P"
)
==
8
...
...
tests/float/float2int_doubleprec.py
View file @
3d3ef36e
# check cases converting float to int, requiring double precision float
import
struct
try
:
import
ustruct
as
struct
except
:
import
struct
# work out configuration values
is_64bit
=
struct
.
calcsize
(
"P"
)
==
8
...
...
tests/float/float_struct.py
View file @
3d3ef36e
# test struct package with floats
import
struct
try
:
import
ustruct
as
struct
except
:
import
struct
i
=
1.
+
1
/
2
# TODO: it looks like '=' format modifier is not yet supported
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment