New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update documentation #45
Conversation
Cool une PR ! J'ai aussi une branche Doc en préparation. Je rajouterai quelques commits à ta branche. |
Les commits de doc dont je parlais ont déjà été mergés. Concernant l'encodage, ce paramètre n'est pas négligeable. Exemple avec le test J'ai regardé un peu plus en détail et l'encodage apparait à plusieurs niveaux :
De ce que je comprends, pour que tout ça fonctionne, il faut que la commande |
J'ai poussé 2 commits (une FAQ avec entrée sur l'encoding et un test pour illustrer la conversion d'encoding avec |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oui il est top ce fichier ! Il faudrait aussi ajouter un lien depuis le README et faire sauter ma modif qui vire l'option encoding
de la doc (ça je peux m'en occuper mais je veux éviter qu'on se marche sur les pieds en bossant sur la même branche)
doc/faq.md
Outdated
|
||
## How to specify encoding? | ||
|
||
Multiple componants are involved when `CSV Fast Importer` is executed: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/componant/component/g
doc/faq.md
Outdated
- SQL command (`COPY` for PostgreSQL) | ||
- database server | ||
|
||
Encoding may be consistent accross all these componants. Here is how to specify or check each componant encoding. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"must be" plutôt que "may be", non ?
doc/faq.md
Outdated
Ruby `File` can also handle internal and external encoding (see [File::new](https://ruby-doc.org/core-2.4.1/File.html#method-c-new) which can be useful to manage automatic conversion: | ||
|
||
```ruby | ||
File.new 'path/to/file.csv', external_encoding: 'UTF-8', internal_encoding: 'ISO-8859-1' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je connaissais pas ! On peut aussi abréger en encoding: 'UTF-8:ISO-8859-1'
à priori, j'aime bien cette notation. Par contre je pense que tu voulais plutôt représenter l'inverse : external_encoding: 'ISO-8859-1', internal_encoding: 'UTF-8'
(soit encoding: 'ISO-8859-1:UTF-8'
)
Pour ce qui est de la version de Ruby le problème c'est que plus elle est basse est plus il est compliqué de la compiler à cause des dépendances qui ne fonctionnent plus. Après on peut laisser gérer la CI pour tester les différentes versions de Ruby et laisser les devs la possibilité de développer avec une version récente (donc juste changer le fichier |
J'ai vu dans le README que tu avais précisé dans les limitations : "Custom line serparator (ex: \r\n for windows file) is not supported yet". En fait si, il suffit de faire ceci : file = File.new(path, universal_newline: true) et hop, magie :) (bon ça marche pas si, par exemple, tu as un mélange de |
C'est étonnant ce paramètre |
38ec6aa
to
11a87f3
Compare
J'ai fais les modifs. Par contre, pour le paramètre magique, je n'arrive pas à reproduire le problème pour vérifier que ça fait bien ce qu'on pense que ça fait :
Est-ce que tu as une idée @marienfressinaud ? |
11a87f3
to
be156ba
Compare
Tu veux dire que ce test passe sans avoir besoin du paramètre ? |
Ouaip |
Bizarre... première idée : vérifier que le fichier est bien créé avec les |
2ee1de6
to
d0aec0e
Compare
d0aec0e
to
fe88e87
Compare
|
Bizarre que ça ne marche pas 🤔 pourtant c'est exactement le cas que j'ai et c'est l'option qui m'a sauvé... tu as quoi comme erreur ? |
Comme s'il n'identifiait par Le code du test : describe 'with custom line separator' do
before do
file = write_file [ %w(name id), %w(Karadoc 1), %w(Perceval 2) ], row_sep: "\r"
puts `file #{file.path}`
file_with_conversion = File.new file.path, universal_newline: true
CsvFastImporter.import file_with_conversion
end
it 'imports as many rows as lines in file' do
row_count.should eql 2
db.query('SELECT name FROM knights where id = 1').should eql 'Karadoc'
db.query('SELECT name FROM knights where id = 2').should eql 'Perceval'
end
end |
ok, je vois rien qui cloche a priori, j'essaierai de regarder dans la journée si j'ai le temps |
J'ai regardé et… c'est un vrai mystère pour moi ! Concernant la doc de
Ouf ! Ceci dit, ça n'aide pas à faire fonctionner… j'ai pensé que potentiellement vu que le fichier avait été ouvert, Ruby le gardait potentiellement en mémoire et ne s'embêtait pas à le réouvrir à l'appel de J'ai ensuite testé avec une version plus récente de Ruby (un bug corrigé dans une version plus récente ?) mais non, ça n'est pas mieux. J'ai quand même vérifié de mon côté que ça marchait sur mon-assistant et oui, j'ai bien un fichier avec des |
Hey coucou ! :) Je suis en train de faire le ménage dans mes PR ouvertes, et celle-là date d'il y a bientôt 2 ans 🎉 J'ai pas très envie de la fermer mais j'ai pas d'énergie à passer dessus. D'après les derniers commentaires, il y avait seulement une option qui nous embêtait donc je propose :
|
Hello ! |
On merge ? :) |
J'ai viré la référence dans la doc à l'option
encoding
, mais faudrait peut-être aller plus loin. Je voulais lancer le test d'encoding sans justement préciser l'option mais j'arrive pas à installer Ruby 2.2.1 (qu'il faudrait mettre à jour d'ailleurs mais j'arrive pas à installer les dépendances avec la version 2.4.1 donc j'abandonne pour le moment).