Code Monkey home page Code Monkey logo

Comments (7)

deepu9 avatar deepu9 commented on July 3, 2024

@alaindebecker try using Path from pathlib package. Something like Path.cwd().

from bonobo.

alaindebecker avatar alaindebecker commented on July 3, 2024

Hi deepu9, Thank for the quick answer.

I do not see how to use Path.cwd(), which gives me the current working directory.

I did try to wrap to warp the string in a Path, which is fine for Path in it self, but still produces the same error (on a a still no existing line 56 in bonobo/nodes/io/base.py).

My minimal reproductible example goes as follow:

myFile = <<any valid csv file of yours>>
print(Path(myFile)) # Check if VALID
graph = bonobo.Graph()
graph.add_chain(
    bonobo.CsvReader(Path(myFile)) # FAULTY
    )
bonobo.run(graph)

FYI : According to your website, I insalled bonobo with pip , after which bonobo version tells me bonobo v.0.6.4.

from bonobo.

klmcwhirter avatar klmcwhirter commented on July 3, 2024

from bonobo.

deepu9 avatar deepu9 commented on July 3, 2024

Hi deepu9, Thank for the quick answer.

I do not see how to use Path.cwd(), which gives me the current working directory.

I did try to wrap to warp the string in a Path, which is fine for Path in it self, but still produces the same error (on a a still no existing line 56 in bonobo/nodes/io/base.py).

My minimal reproductible example goes as follow:

myFile = <<any valid csv file of yours>>
print(Path(myFile)) # Check if VALID
graph = bonobo.Graph()
graph.add_chain(
    bonobo.CsvReader(Path(myFile)) # FAULTY
    )
bonobo.run(graph)

FYI : According to your website, I insalled bonobo with pip , after which bonobo version tells me bonobo v.0.6.4.

@alaindebecker When you use Path.cwd(), it gives current working directory. Anything that comes after the working directory should be appended by using joinpath().

Say your file path is C:\Users\alain\Desktop\projects\pyetl\Employees.txt. When you use Path.cwd(), it only gives you C:\Users\alain\Desktop\projects\pyetl, because that's your project root directory, where your code is being run. Now to make the other parts, use joinpath(). So the final code will be:

Path.cwd().joinpath('Employees.txt')

Say your file path is C:\Users\alain\Desktop\projects\pyetl\subfolder1\subfolder1.2\Employees.txt, then your code should be:

Path.cwd().joinpath('subfolder1', 'subfolder1.2', 'Employees.txt')

from bonobo.

alaindebecker avatar alaindebecker commented on July 3, 2024

Still not.

myFile = Path.cwd().joinpath('..', 'Employees.txt')
print('File name:', myFile)
print('File exists:', myFile.is_file())
graph = bonobo.Graph()
graph.add_chain(bonobo.CsvReader(myFile))
bonobo.run(graph)

However, this time, the "/" after the "C:" was not erased, but all the "/" where converted to "\" and file name got truncated.

File name: C:\Users\alain\Desktop\projects\pyetl\..\Employees.txt
File exists: Truefs.errors.InvalidCharsInPath  path 'C:\Users\alain\Desktop\projects\ClassicModels\datafiles' contains invalid characters

from bonobo.

deepu9 avatar deepu9 commented on July 3, 2024

Still not.

myFile = Path.cwd().joinpath('..', 'Employees.txt')
print('File name:', myFile)
print('File exists:', myFile.is_file())
graph = bonobo.Graph()
graph.add_chain(bonobo.CsvReader(myFile))
bonobo.run(graph)

However, this time, the "/" after the "C:" was not erased, but all the "/" where converted to "" and file name got truncated.

File name: C:\Users\alain\Desktop\projects\pyetl\..\Employees.txt
File exists: Truefs.errors.InvalidCharsInPath  path 'C:\Users\alain\Desktop\projects\ClassicModels\datafiles' contains invalid characters

@alaindebecker Don't worry about forward or backward slashes, as the pathlib will take care of them. Also, I've noticed .. in your code. Not sure whether you want to hide subfolders from public view or use the .. for relative path. If it's the later, then can you remove the .. from joinpath(). Can you confirm.

I've created same folder structure and it works for me. Thanks

from bonobo.

deepu9 avatar deepu9 commented on July 3, 2024

@alaindebecker Did you get a chance to re-check your code? Can you let me know how did it go. Thanks

from bonobo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.