Showing posts with label File. Show all posts
Showing posts with label File. Show all posts

October 28, 2024

Understanding Python Dependency Versioning Symbols

Hi all,

It's been so confusing for me when the versions are with different operators.

Introduction: Managing dependencies in Python is crucial for ensuring your project runs smoothly across different environments. Dependencies, or libraries your project relies on, often need specific versions to maintain compatibility. This blog post will walk you through the symbols used in Python versioning and how they work to keep your project stable and functional.

What Are Python Dependencies?

In Python projects, dependencies are essential libraries that your project needs to function. They’re often listed in files like requirements.txt or Pipfile. To keep these dependencies compatible, Python uses specific symbols in versioning to define acceptable package versions. Let's dive into each symbol to see how they impact dependency management.

Key Python Versioning Symbols

  1. Exact Version (==)

    • Syntax: package_name==1.0.0
    • Meaning: Installs only the specified version. For example, numpy==1.18.5 installs version 1.18.5 of NumPy.
    • Best For: Strict requirements when a specific version is necessary for compatibility.
  2. Minimum Version (>=)

    • Syntax: package_name>=1.0.0
    • Meaning: Installs the specified version or newer. Example: Django>=3.1.0 installs any version of Django from 3.1.0 onward.
    • Best For: Ensuring updates without breaking compatibility with older versions.
  3. Maximum Version (<=)

    • Syntax: package_name<=1.0.0
    • Meaning: Installs only the specified version or older. For example, pandas<=1.2.3 won’t install any version beyond 1.2.3.
    • Best For: Avoiding potential incompatibilities with newer versions.
  4. Range of Versions (>= and <=)

    • Syntax: package_name>=1.0.0,<=2.0.0
    • Meaning: Installs a version within the specified range. Example: Flask>=1.1.0,<=2.0.1 includes versions between 1.1.0 and 2.0.1.
    • Best For: Ensuring some flexibility while staying within a compatible version range.
  5. Exclude Specific Versions (!=)

    • Syntax: package_name!=1.0.1
    • Meaning: Excludes a particular version. Example: requests!=2.21.0 installs any version of requests except 2.21.0.
    • Best For: Avoiding known buggy or incompatible versions.
  6. Compatible Release (~= or ^)

    • Syntax: package_name~=1.4 or package_name^1.4.0
    • Meaning: Installs versions up to, but not including, the next major version. Example: pandas~=1.2.3 includes versions like 1.2.4 but not 1.3.0.
    • Best For: Keeping compatibility within a minor version range.
  7. Pre-release and Development Versions (<, >)

    • Syntax: package_name<2.0.0
    • Meaning: Allows installation of pre-release versions. Example: scipy<2.0.0 might include a development version like 1.5.0.dev.
    • Best For: Testing experimental versions, not typically used in production.

Example Usage in Requirements Files

Here are some example scenarios showing how to use these symbols:

  • Single Requirement: flask==2.0.1 installs only version 2.0.1.
  • Multiple Requirements: requests>=2.20.0,<3.0.0 installs versions from 2.20.0 up to, but not including, 3.0.0.
  • Combined Exclusions: scipy>=1.5.2,!=1.6.0,!=1.7.1 installs from 1.5.2 onwards but excludes 1.6.0 and 1.7.1.

Best Practices

  1. Avoid Exact Versioning (==) in Libraries: Using == restricts flexibility for future projects, so avoid it in libraries that might be used elsewhere.

  2. Use Compatible Release (~=) in Production: This symbol allows updates while maintaining compatibility.

  3. Test Development Versions Carefully: Isolate pre-release versions in a separate virtual environment for testing purposes.

  4. Regularly Update Dependencies: Keeping dependencies up to date helps with security and performance. Use pip commands to check for updates.

References

Conclusion

Understanding Python dependency versioning symbols can be the difference between a stable environment and one filled with compatibility issues. Following these guidelines will help you create reliable, well-maintained Python environments.

January 27, 2021

Windows Batch File - Embed Image (Base64 Encoded) in HTML Code

 Hi folks,

Today I am going to explain how we can add an image to the HTML code in without copying the images in relative path folder.

Procedure

  • Prefix file contents.
    • <img src="data:image/png;base64,
  •  Batch file contents.
  • Suffix file contents.
    • " alt="PSR" />
  • Download the batch file.
  • Open command prompt in Windows.
  • Navigate to the batch file contained folder.
  • Execute the batch file image file name as parameter.
    • > Image2Base64ImgTag.bat PSRImage.jpeg
  • You should see a file "imageTag.html".
  • Open the file to see image in a browser.
  • Open the file with notepad to see the image converted to base64 with proper HTML Image tag.


Hope this helps you to reduce lot of efforts in maintaining the image files/folders.

Send your feedback and comments to psrdotcom@gmail.com

October 06, 2020

Convert JSON file to CSV with Python

 Hi folks,

Today I will explain the code to implement the Json2CSV conversion.

Make sure you have valid JSON file with an array of objects.

Sample:

"Users":[

{"id": 1, "Name": "Suresh Raju", "Age": 35},

{"id":2, "Name": "PSR", "Age": 34}

]

I have chosen Python language to convert because of inbuilt library support for json and csv and command line execution with Notepad++ as editor.

Source Code Snippet: GitHub Gist

Please send your valuable feedback and comments to psrdotcom@gmail.com


August 13, 2020

Microsoft Windows Sysinternals Suite with file, disk, network, process, security utilities

Hi Folks,

Today, i will give an overview of Microsoft Windows Sysinternals Suite.

This suite helps users and admins to troubleshoot the OS and devices.

Sysinternals Suite

The Suite is a bundling of the following selected Sysinternals Utilities: AccessChk, AccessEnum, AdExplorer, AdInsight, AdRestore, Autologon, Autoruns, BgInfo, BlueScreen, CacheSet, ClockRes, Contig, Coreinfo, Ctrl2Cap, DebugView, Desktops, Disk2vhd, DiskExt, DiskMon, DiskView, Disk Usage (DU), EFSDump, FindLinks, Handle, Hex2dec, Junction, LDMDump, ListDLLs, LiveKd, LoadOrder, LogonSessions, MoveFile, NotMyFault, NTFSInfo, PageDefrag, PendMoves, PipeList, PortMon, ProcDump, Process Explorer, Process Monitor, PsExec, PsFile, PsGetSid, PsInfo, PsKill, PsList, PsLoggedOn, PsLogList, PsPasswd, PsPing, PsService, PsShutdown, PsSuspend, PsTools, RAMMap, RegDelNull, RegHide, RegJump, Registry Usage (RU), SDelete, ShareEnum, ShellRunas, Sigcheck, Streams, Strings, Sync, Sysmon, TCPView, VMMap, VolumeID, WhoIs, WinObj, ZoomIt

Individual Utilities

If you want to use or explore individual utilities then please use the below links for navigation

  1. File and Disk Utilities
  2. Networking Utilities
  3. Process Utilities
  4. Security Utilities
  5. System Information
  6. Miscellaneous

My favorites

  1. DiskMon - Disk monitor whenever read/write happens to hard disk
  2. Disk2vhd - Convert your physical harddisk to Microsoft VHD (Virtual Hard Disk) format
  3. TCPView - List the TCP and UDP ports usage with process name
  4. Active Director Explorer - Advanced Active Directory (AD) viewer and editor
  5. VMMap - Virutal and physical memory analysis utility

Hope, these tools will help you to troubleshoot and/or make use of official Microsoft utilities to explore OS more.

Please send your feedback and comments to psrdotcom@gmail.com

March 06, 2020

View docker image file content with folder structure

Hi folks,

I have come across a scenario where I need to see the image contents.

Yes, I want to view the image content with hierarchy.

Then I found this dive, which has done it beautifully.

Install on Ubuntu PC


  1. # wget https://github.com/wagoodman/dive/releases/download/v0.9.2/dive_0.9.2_linux_amd64.deb
  2. # sudo apt install ./dive_0.9.2_linux_amd64.deb

Usage


  • Get the docker images list
    • # docker image list
  • Choose the image which you want to explore by copying the "Repository" name
  • Run the command
    • # dive
  • It takes some time to analyse and display the image contents in hierarchical manner.
  • Of the left side, it will have the image layers
  • Select the appropriate image layer with up/down arrow keys
  • By pressing the "Tab" you will be able to switch to right side view where your files are available
  • Use space to expand/collapse the folder
  • Dive will display each folder size
  • See the sample docker image contents with dive below




  • To quit/exit from the dive, use Ctrl+C


Hope this is helpful

Please send your feedback and comments to psrdotcom@gmail.com

March 03, 2020

Run local file server with NPM http-server

Hi folks,

Today i'll explian the process of making your folder as a standalone file server.

Objective

Make my folder contents browse over http

Procedure


  • Install Node
  • Install http-server module in node globally
    • npm install -g http-server
  • Open terminal/command-prompt
  • Navigate to your folder
  • Run the following command to start the server
    • http-server .
  • or simply run
    • hs .
  • Run from anywhere with full path of the folder
    • hs C:\FileFolder
  • Starting up http-server, serving .
  • Available on:
    • http://10.10.6.2:8080
    • http://127.0.0.1:8080
    • http://youripaddress:8080
  • Hit CTRL-C to stop the server
  • You should be able to browse your file folder contents with any of the above URLs
Hope you are able to access your file contents over the browser

Tip: Using this approach, you can share your content over intranet/internet with full control over data as read only.

After stopped the server, access to the folder is stopped.

Please send your comments and feedback to psrdotcom@gmail.com

January 24, 2019

bash: C:/Program: No such file or directory error solution in git bash with windows directory path having spaces

Hi friends,

Today, I have come across a situation where I have to execute the gitbash on windows with linux commands.

The escape character doesn't alone solve the problem

Problem


Setting up an alias for bash where the path includes space

$ alias DOCKER_HOME=C:/Program Files/Docker/Docker

Error

bash: C:/Program: No such file or directory

Solution

$ alias DOCKER_HOME=C:/"Program\ Files"/Docker/Docker

Hope my solution helps you in resolving the issue.

Please send your feedback and comments to psrdotcom@gmail.com

December 30, 2016

Windows file name too long to delete move copy rename due to destination path too long

Hi friends,

Problem

When i am clearing my old windows folder from the OS installed drive, I had an issue of deleting the files and folder because the path name is too long.

The error message is

"Destination Path Too Long.

The file name(s) would be too long for the destination folder. You can shorten file name and try again, or try a location that has a shorter path."

Background

Windows OS will allow the file path to be max 255 characters. If any file or folder path is beyond 255 characters, you will not be able to perform any file actions like delete / move / copy / rename.

Solution


  1. Navigate to the folder in the windows explorer
  2. Type the following command in the address bar and hit enter key
    • subst j:
  3. Open a new windows explorer window
  4. Now you will be able to see new drive with letter J:
  5. You will be able to delete the files/folders with in the drive
  6. To delete the other files, navigate to the parent folder and delete one after one or multiple folders path at a time.


Please send your feedback or suggestions to psrdotcom@gmail.com

January 03, 2016

Nexus 7 Files accessing (storage drive) issue fix after upgrading to Marshmallow

Hi friends,

Today when I connected my Nexus 7 tab, I was unable to see the drive and folder structure. But in the file explorer it is able to detect the Nexus 7 by showing the icon. When you double click to view the files, there is nothing.
  1. After googling, the following solutions worked for me.
  2. Go to device management
  3. Right click Android ADB Interface and do uninstall
  4. After uninstalling the drivers, change the USB type in Nexus to PTP and immediately change to MTP
  5. Unplug and plug the Nexus to your PC
  6. Now the system will re-install the driver
Hope, this post will be useful when OS upgraded and unable to access file system of device

Android 6.0.1 Upgrade fix

After installing the driver, device might be recognized but we need to change the "Use USB for options" from any one of the following options

Notification Panel

  1. Select the "USB for file transfer - Touch for more options"
  2. You will be prompted to choose any one of the following
    • Charging
    • File transfers
    • Photo transfers
    • MIDI
  3. Select File transfers to see the "Internal Storage"

Developer Options

  1. Go to "Settings->Developer Options"
  2. Go to "Select USB Configuration" setting
  3. Choose "MTP (Media Transfer Protocol)" for transferring the files
Now you should be able to see the file storage in explorer

Please send your feedback and comments to psrdotcom@gmail.com

November 27, 2015

Creating Symbolic Link (Symlink) in Windows 7

Hi friends,

In Linux, it is easy to create symbolic link (symlink) with "ln" command.
But what about in windows?

I found one GUI and command for creating the symbolic links in windows.

Pre-requisites

  1. Visual Studio 2005 redistributable
  2. Link Shell Extension
  3. Download the above executables from here based on OS and system architecture
  4. For Windows 7 64-bit, I have downloaded the following highlighted in black box

Procedure

  • Install the Visual Studio 2005 redistributable
  • Install Link Shell Extension
  • You should be able to see an option in context menu
  • Select the file/folder
  • Right click and select the option "Pick Link Source"

  • Now, the file is been picked
  • Navigate to go the destination folder where you want to create the symbolic link
  • Right click on the empty space of the folder
  • Select Drop As and select "Hardlink or Symbolic Link" based on your requirement


  • You should be able to see the file type as .symlink


References

http://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/

Please send your feedback and comments to psrdotcom@gmail.com

Featured Post

Java Introdcution

Please send your review and feedback to psrdotcom@gmail.com