MCPcopy Index your code
hub / github.com/RustPython/RustPython / to_writer

Method to_writer

crates/stdlib/src/csv.rs:837–894  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

835 reader.build()
836 }
837 fn to_writer(&self) -> csv_core::Writer {
838 let mut builder = csv_core::WriterBuilder::new();
839 let mut writer = match &self.dialect {
840 DialectItem::Str(name) => {
841 let g = GLOBAL_HASHMAP.lock();
842 if let Some(dialect) = g.get(name) {
843 let mut builder = builder
844 .delimiter(dialect.delimiter)
845 .double_quote(dialect.doublequote)
846 .terminator(dialect.lineterminator);
847 if let Some(t) = dialect.quotechar {
848 builder = builder.quote(t);
849 }
850 builder
851
852 // RustPython todo
853 // todo! Perfecting the remaining attributes.
854 } else {
855 &mut builder
856 }
857 }
858 DialectItem::Obj(obj) => {
859 let mut builder = builder
860 .delimiter(obj.delimiter)
861 .double_quote(obj.doublequote)
862 .terminator(obj.lineterminator);
863 if let Some(t) = obj.quotechar {
864 builder = builder.quote(t);
865 }
866 builder
867 }
868 _ => &mut builder,
869 };
870 if let Some(t) = self.delimiter {
871 writer = writer.delimiter(t);
872 }
873 if let Some(t) = self.quotechar {
874 if let Some(u) = t {
875 writer = writer.quote(u);
876 } else {
877 todo!()
878 }
879 }
880 if let Some(t) = self.doublequote {
881 writer = writer.double_quote(t);
882 }
883 writer = match self.lineterminator {
884 Some(u) => writer.terminator(u),
885 None => writer.terminator(Terminator::CRLF),
886 };
887 if let Some(e) = self.escapechar {
888 writer = writer.escape(e);
889 }
890 if let Some(e) = self.quoting {
891 writer = writer.quote_style(e.into());
892 }
893 writer.build()
894 }

Callers 1

writerFunction · 0.80

Calls 7

newFunction · 0.85
delimiterMethod · 0.80
quoteMethod · 0.80
escapeMethod · 0.80
lockMethod · 0.45
getMethod · 0.45
buildMethod · 0.45

Tested by

no test coverage detected