bastion

joined 2 years ago
[โ€“] [email protected] 1 points 4 weeks ago

good looking out.

[โ€“] [email protected] 1 points 4 weeks ago* (last edited 4 weeks ago)

you know, you could also either include a lossy copy next to the lossless ones, then rsync only lossy extensions, or, if that pollutes your collection, have a separate but identically-structured directory tree, where all your lossless files have lossy copies. Then, you can rsync both folders (send-only) to your single remote (lossy extensions only).

but, yeah, Git really isn't the tool for this, agreed.

[โ€“] [email protected] 28 points 1 month ago* (last edited 1 month ago)

the car is already purchased. the debt is to the bank. not making payments is irrelevant.

[โ€“] [email protected] 6 points 1 month ago

It's you, not them.

[โ€“] [email protected] 4 points 1 month ago (3 children)

Make a script. I'd use xonsh or python with sh.py.

  • create a dict for remote to local filename map
  • walk your local collection
    • for each file, determine what the correct remote name (including a valid extension) would be, and add the pair to the dict, with remote filenames as keys, local filenames as values
  • make a set like local_munged_names from that dict's keys
  • walk your remote tree, and store the filenames in a set like remote_names
  • names_to_upload = local_munged_names - remote_names
  • for each name in names to upload, look up the local filename from the remote to local filename map. Then, encode it if it needs encoding, and upload.
[โ€“] [email protected] 1 points 1 month ago* (last edited 1 month ago)

Yes, because

In the first kind of language, the thought process is basically: I have the flow of execution, starting at the top of the file. If I want to make a library, I should build the things I want to build, then get out of the way.

Note the "I have the flow of execution", and the "if I want to build a library".

If you just want to build an executable, do as you wish, you already have the flow of execution.

If you want to build a library, make the relevant classes and functions and get out of the way (i.e., no IO, no long-running tasks).

If you want to combine them, use the main name check - or, make a package and do entry points that way. Either way works, because both can fulfill the goal of staying out of the way of those importing this as a library.

[โ€“] [email protected] 2 points 1 month ago* (last edited 1 month ago)
[โ€“] [email protected] 5 points 1 month ago* (last edited 1 month ago) (1 children)

It simply swaps some things around to make things more confusing, then goes into an infinite loop (whether or not you import or execute it standalone). it's no different than just including in the global scope:

while True:
    pass

I was kinda lazy with the fuckery, tbh. I could have gotten much more confusing, but don't have too much time today. :-)

[โ€“] [email protected] 1 points 1 month ago (2 children)

came here to see if Fedora had a --download-only equivalent.

[โ€“] [email protected] 7 points 1 month ago (4 children)

I always use

if "__main__" == main:
    __main__()

..and earlier in the code:

def __main__():
    while True:
        pass
main = "__main__"

This helps to prevent people from arbitrarily running my code as a library or executable when I don't went them to.

view more: โ€น prev next โ€บ