Letās pretend that I did that originally I did it in the _search_zip method. Also added a method to get package and asset name from absolute path. Updates on the Gist .
Edit: err half way. Woops.
Letās pretend that I did that originally I did it in the _search_zip method. Also added a method to get package and asset name from absolute path. Updates on the Gist .
Edit: err half way. Woops.
Another thing, generally you wanna use try/finally when using open() zipfile.ZipFile() etc
Python has with
for that: with open(bla) as file_handle: file_handle.read()
def get_package_and_asset(path):
package = os.path.basename(os.path.dirname(path))
package = package.replace(".sublime-package", "")
asset = os.path.basename(path)
return (package, asset)
I want my money back! Oh wait, I didnāt pay any nor do I really care about windows absolute paths!
[quote=ācastles_made_of_sandā]def get_package_and_asset(path):
package = os.path.basename(os.path.dirname(path))
package = package.replace(".sublime-package", "")
asset = os.path.basename(path)
return (package, asset)
I want my money back! Oh wait, I didnāt pay any nor do I really care about windows absolute paths![/quote]
Looks at my poor poor windows machine that I am forced to use for development
Nevermind Iām satiated haha
os.path.basename
Thatās the one I was trying to think of the other day
[code]>>> import posixpath
import ntpath
ntpath.basename(āC:\fuck\fuckerā)
āfuckerāos.path is posixpath
True
[/code]
Learn something every day
Yup I tested it after I posted. Also added the āwithā statement. Hadnāt seen that before, though I still should have done the try catch stuff. Oh well though, this is why itās good to share code.
Oh, wait, one more thing.
Will that helper handle nested assets? āPackages/Path/Subfolder/asset.pthā?
It will as soon as I fix it?
edit:
the ātooā at the end was wrong and bothering me.
Haha, good answer
Thereās also the bytes/unicode inconsistency on python 3 between zipfile open and normal open
Had to go take care of some other things, so that took longer than I wanted it to. Anyways, it should now handle nested assets. Also, everything is returned as bytes now.
I meant more this guy:
def get_package_and_asset(path):
package = os.path.basename(os.path.dirname(path))
package = package.replace(".sublime-package", "")
asset = os.path.basename(path)
return (package, asset)
That helper doesnāt handle nested paths too well.
Your get_package_asset function should have worked with nested files before, if Iām not mistaken
Ah I see. I willā¦get back on that. Ha. No I donāt think it would. I was just looking at the top level package directory, so anything nested would have been missed. I wasā¦ummā¦testing you to make sure you saw the problem too? Yea letās go with that
Unless you meant specifying the entire asset path, then yes it would have. In fact, maybe I should go back to that.
Edit:
So get_package_and_asset_name handles recursive files. Iāve added a parameter to get_package_asset to do the recursive search (defaults to false). I was thinking this may be useful if nested folders are allowed for settings. I think Iāve seen a post on this forum related to something like that.
Sorry, was out getting dinner. So it will search for a given base file name anywhere in a zip/folder?
Canāt imagine when Iād want that really.
Mostly I just want ability to get things like dict(pkg='Murky', relative_path='waters/salty/green.color')
Will look over latest incarnation
gist.github.com/skuroda/4965913 ā¦ set-py-L40
Opening explicitly in rb
mode ftw
gist.github.com/skuroda/4965913 ā¦ et-py-L125
os.walk should in essence recurse by itself I think
I know the doc for get_package_and_asset_name
says āThis method will return
the package name and asset name from an absolute pathā but it would be nice if
it was able to handle paths as returned by things like:
>>> view.settings().get('syntax')
'Packages/Python/Python.tmLanguage'
It should do what you want (though test it to make sure). I did some and it appears to extract the package and path properly. The recursive thing was more of a me thinking of something else when you said nested files. Though if sublime text allows for nested directories, someone may define a keymap file not at the top level. Of course, this doesnāt affect your stuff. I may go back and just take it out. If Sublime Text allows the nested structure at some point, I can re add it. With that being said, Iām done for tonight. Iāll check back tomorrow for feedback.
Ha yup. Do you know of any reason not to do that? Iāve never had a reason to open files as binary in python, so Iām not sure itās 100% safe.
Hmm, I didnāt think it did when I test it, or maybe I just wasnāt paying attention. And yes I wasnāt paying attention. Sadā¦maybe thatās fatigue setting in.
Side notes:
Hmm, great how export html was only discussed on sayā¦the first 20 posts in this thread, but itās all related. And as a random noteā¦apparently the Sublime Text team is at least 2 people (the latest blog post isnāt from Jon).