annotate rust/hg-cpython/src/filepatterns.rs @ 42841:ce6797ef6eab

rust: apply more formatting fixes My cargo fmt updated these lines and they look good.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 31 Aug 2019 14:12:38 +0900
parents 0247601869ba
children 7a01778bc7b7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
1 // filepatterns.rs
40965
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
2 //
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
3 // Copyright 2019, Georges Racinet <gracinet@anybox.fr>,
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
4 // Raphaël Gomès <rgomes@octobus.net>
40965
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
5 //
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
6 // This software may be used and distributed according to the terms of the
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
7 // GNU General Public License version 2 or any later version.
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
8
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
9 //! Bindings for the `hg::filepatterns` module provided by the
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
10 //! `hg-core` crate. From Python, this will be seen as `rustext.filepatterns`
42841
ce6797ef6eab rust: apply more formatting fixes
Yuya Nishihara <yuya@tcha.org>
parents: 42634
diff changeset
11 //! and can be used as replacement for the the pure `filepatterns` Python
ce6797ef6eab rust: apply more formatting fixes
Yuya Nishihara <yuya@tcha.org>
parents: 42634
diff changeset
12 //! module.
41188
006c9ce486fa rust-cpython: bindings for MissingAncestors
Georges Racinet <georges.racinet@octobus.net>
parents: 41187
diff changeset
13 //!
42609
326fdce22fb2 rust: switch hg-core and hg-cpython to rust 2018 edition
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42437
diff changeset
14 use crate::exceptions::{PatternError, PatternFileError};
41053
d9f439fcdb4c rust-cpython: binding for AncestorsIterator
Georges Racinet <gracinet@anybox.fr>
parents: 40965
diff changeset
15 use cpython::{
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
16 PyBytes, PyDict, PyModule, PyObject, PyResult, PyTuple, Python, ToPyObject,
41053
d9f439fcdb4c rust-cpython: binding for AncestorsIterator
Georges Racinet <gracinet@anybox.fr>
parents: 40965
diff changeset
17 };
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
18 use hg::{build_single_regex, read_pattern_file, LineNumber, PatternTuple};
41053
d9f439fcdb4c rust-cpython: binding for AncestorsIterator
Georges Racinet <gracinet@anybox.fr>
parents: 40965
diff changeset
19
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
20 /// Rust does not like functions with different return signatures.
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
21 /// The 3-tuple version is always returned by the hg-core function,
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
22 /// the (potential) conversion is handled at this level since it is not likely
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
23 /// to have any measurable impact on performance.
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
24 ///
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
25 /// The Python implementation passes a function reference for `warn` instead
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
26 /// of a boolean that is used to emit warnings while parsing. The Rust
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
27 /// implementation chooses to accumulate the warnings and propagate them to
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
28 /// Python upon completion. See the `readpatternfile` function in `match.py`
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
29 /// for more details.
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
30 fn read_pattern_file_wrapper(
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
31 py: Python,
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
32 file_path: PyObject,
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
33 warn: bool,
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
34 source_info: bool,
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
35 ) -> PyResult<PyTuple> {
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
36 match read_pattern_file(file_path.extract::<PyBytes>(py)?.data(py), warn) {
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
37 Ok((patterns, warnings)) => {
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
38 if source_info {
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
39 let itemgetter = |x: &PatternTuple| {
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
40 (PyBytes::new(py, &x.0), x.1, PyBytes::new(py, &x.2))
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
41 };
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
42 let results: Vec<(PyBytes, LineNumber, PyBytes)> =
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
43 patterns.iter().map(itemgetter).collect();
42634
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
44 return Ok((results, warnings_to_py_bytes(py, &warnings))
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
45 .to_py_object(py));
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
46 }
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
47 let itemgetter = |x: &PatternTuple| PyBytes::new(py, &x.0);
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
48 let results: Vec<PyBytes> =
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
49 patterns.iter().map(itemgetter).collect();
42634
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
50 Ok(
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
51 (results, warnings_to_py_bytes(py, &warnings))
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
52 .to_py_object(py),
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
53 )
41053
d9f439fcdb4c rust-cpython: binding for AncestorsIterator
Georges Racinet <gracinet@anybox.fr>
parents: 40965
diff changeset
54 }
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
55 Err(e) => Err(PatternFileError::pynew(py, e)),
41053
d9f439fcdb4c rust-cpython: binding for AncestorsIterator
Georges Racinet <gracinet@anybox.fr>
parents: 40965
diff changeset
56 }
d9f439fcdb4c rust-cpython: binding for AncestorsIterator
Georges Racinet <gracinet@anybox.fr>
parents: 40965
diff changeset
57 }
40965
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
58
42634
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
59 fn warnings_to_py_bytes(
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
60 py: Python,
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
61 warnings: &[(Vec<u8>, Vec<u8>)],
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
62 ) -> Vec<(PyBytes, PyBytes)> {
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
63 warnings
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
64 .iter()
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
65 .map(|(path, syn)| (PyBytes::new(py, path), PyBytes::new(py, syn)))
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
66 .collect()
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
67 }
0247601869ba rust-filepatterns: fix type of warnings tuple to (bytes, bytes)
Yuya Nishihara <yuya@tcha.org>
parents: 42609
diff changeset
68
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
69 fn build_single_regex_wrapper(
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
70 py: Python,
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
71 kind: PyObject,
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
72 pat: PyObject,
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
73 globsuffix: PyObject,
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
74 ) -> PyResult<PyBytes> {
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
75 match build_single_regex(
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
76 kind.extract::<PyBytes>(py)?.data(py),
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
77 pat.extract::<PyBytes>(py)?.data(py),
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
78 globsuffix.extract::<PyBytes>(py)?.data(py),
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
79 ) {
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
80 Ok(regex) => Ok(PyBytes::new(py, &regex)),
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
81 Err(e) => Err(PatternError::pynew(py, e)),
41114
b31a41f24864 rust-cpython: binding for LazyAncestors
Georges Racinet <gracinet@anybox.fr>
parents: 41053
diff changeset
82 }
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
83 }
41188
006c9ce486fa rust-cpython: bindings for MissingAncestors
Georges Racinet <georges.racinet@octobus.net>
parents: 41187
diff changeset
84
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
85 pub fn init_module(py: Python, package: &str) -> PyResult<PyModule> {
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
86 let dotted_name = &format!("{}.filepatterns", package);
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
87 let m = PyModule::new(py, dotted_name)?;
41188
006c9ce486fa rust-cpython: bindings for MissingAncestors
Georges Racinet <georges.racinet@octobus.net>
parents: 41187
diff changeset
88
40965
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
89 m.add(py, "__package__", package)?;
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
90 m.add(
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
91 py,
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
92 "__doc__",
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
93 "Patterns files parsing - Rust implementation",
40965
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
94 )?;
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
95 m.add(
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
96 py,
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
97 "build_single_regex",
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
98 py_fn!(
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
99 py,
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
100 build_single_regex_wrapper(
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
101 kind: PyObject,
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
102 pat: PyObject,
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
103 globsuffix: PyObject
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
104 )
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
105 ),
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
106 )?;
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
107 m.add(
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
108 py,
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
109 "read_pattern_file",
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
110 py_fn!(
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
111 py,
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
112 read_pattern_file_wrapper(
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
113 file_path: PyObject,
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
114 warn: bool,
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
115 source_info: bool
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
116 )
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
117 ),
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
118 )?;
42437
9609430d3625 rust-filepatterns: use bytes instead of String
Rapha?l Gom?s <rgomes@octobus.net>
parents: 42328
diff changeset
119 m.add(py, "PatternError", py.get_type::<PatternError>())?;
40965
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
120 let sys = PyModule::import(py, "sys")?;
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
121 let sys_modules: PyDict = sys.get(py, "modules")?.extract(py)?;
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
122 sys_modules.set_item(py, dotted_name, &m)?;
42328
94f3a73b6672 rust-filepatterns: add `rust-cpython` bindings for `filepatterns`
Rapha?l Gom?s <rgomes@octobus.net>
parents: 41693
diff changeset
123
40965
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
124 Ok(m)
5532823e8c18 rust-cpython: start cpython crate bindings
Georges Racinet <gracinet@anybox.fr>
parents:
diff changeset
125 }